名称中不能包含':'字符,十六进制值0x3A

我有一个包含其元素的xml文件,例如


<ab:test>Str</ab:test>  

当我尝试使用代码访问它时:


XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault();

这给了我这个错误:


System.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.Xml.XmlException:名称中不能包含':'字符,十六进制值0x3A。


我应该如何访问?


富国沪深
浏览 1728回答 3
3回答

扬帆大鱼

如果要使用名称空间,则LINQ to XML真的很容易:XNamespace ab = "http://whatever-the-url-is";XElement tempElement = doc.Descendants(ab + "test").FirstOrDefault();xmlns:ab=...在文档中查找一个部分,以找出“ ab”所指的名称空间URI。

FFIVE

我有同样的错误。我发现我正在添加代码...var ab = "http://whatever-the-url-is";...但是ab被确定为字符串。这导致了OP报告的错误。我没有使用VAR关键字,而是使用了实际的数据类型XNamespace ...XNamespace ab = "http://whatever-the-url-is";...问题就消失了。
打开App,查看更多内容
随时随地看视频慕课网APP