【发布时间】:2010-04-04 19:06:21
【问题描述】:
我有一个 xml 文件,其中包含其元素,例如
<ab:test>Str</ab:test>
当我尝试使用代码访问它时:
XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault();
它给了我这个错误:
System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.Xml.XmlException: ':' 字符,十六进制值 0x3A,不能包含在名称中。
我应该如何访问它?
【问题讨论】:
-
您当然有办法处理名称空间,因此您不必(或者在这种情况下,您不能)将它们放在名称中。你应该看看这个方向。
-
不仅 XML 规范说 ":" 是 allowed for names(并且是名称的开头!),而且 XName 的 Get method 并没有记录它抛出 XmlException!
-
参见stackoverflow.com/questions/8324960/… 以了解正确的命名空间处理。
标签: c# xml linq linq-to-xml