【发布时间】:2011-05-16 08:42:50
【问题描述】:
我正在尝试遍历一个符合 SDMX 的 XML 文档。这是一个简短的示例:
<root>
<csf:DataSet id="J10">
<kf:Series>
<value> 107.92
</value>
</kf:Series>
</csf:DataSet>
</root>
但是,当我尝试在 C# 中使用 Linq to Xml 执行以下操作时,我得到了 XmlException。
XElement dataset = document.Element("csf:DataSet");
异常文本是: ':' 字符,十六进制值 0x3A,不能包含在名称中。
我无法控制 XML。关于如何克服这个问题的任何想法?
【问题讨论】:
-
请注意,“:”不是标签中的特殊字符。它是分隔命名空间前缀和元素本地名称的分隔符。
-
您的 XML 缺少命名空间声明。请参阅我的完整示例。如果您尝试在没有“xmlns:crf=...”的情况下运行它,则 Parse 方法会引发异常。
-
@Saunders, @m0sa:感谢您的提醒。完整的文档确实有一个 xmlns 条目,我只是不知道 ns 是用于命名空间的!再次感谢。
标签: c# linq-to-xml xelement xmlexception xname