我有一个xml文件,它包含了它的元素,比如
<ab:test>Str</ab:test>
当我试图使用代码访问它时:
XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault();
它给了我一个错误:
System.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.XML.XmlException:名称中不能包含“:”字符(十六进制值0x 3A)。
我应该如何访问它?
7条答案
按热度按时间rmbxnbpk1#
如果你想使用名称空间,LINQ to XML会让你变得非常简单:
在文档中查找
xmlns:ab=...
部分,找出URI“ab”所指的名称空间。x9ybnkn62#
尝试将您的命名空间放在
{
中...}
类似:cx6n0qe33#
我也犯了同样的错误。我发现我在添加代码...
但ab被确定为字符串。这导致OP报告的错误。我没有使用VAR关键字,而是使用实际的数据类型XNamespace...
问题就消失了
0pizxfdo4#
有一个Get方法的重载,您可能希望尝试它考虑命名空间。试试这个:
nkkqxpd95#
尝试从文档中获取命名空间
bbuxkriu6#
删除
AndroidManifest.xml
和AndroidManifest.xml.DISABLED
对我来说很有效。xuo3flqw7#
当':'字符包含在命名空间中时,它会有问题。示例:
一个适用于所有情况的解决方案是在
XNamespace
的示例上使用GetName
方法。使用默认命名空间的示例: