我正在使用XDocument对象中的LINQ to XML。在下面的例子中如何查询结果元素?
<serv:header> <serv:response> <serv:result>SUCCESS</serv:result> <serv:gsbStatus>PRIMARY</serv:gsbStatus> </serv:response> </serv:header>
当我使用这样的语句时,我得到异常’附加信息:’:’字符,十六进制值0x3A,不能包含在名称中。
XDocument doc = XDocument.Parse(xml); string value = doc.Descendants("serv:header").First().Descendants("serv:response").First().Descendants("serv:result").First().Value;
你的XML中的serv是一个命名空间前缀。它必须与标识命名空间的URI相关联。在XML中寻找这样的属性:
xmlns:serv="..."
引号内的值将是命名空间。现在,在你的C#代码中,你使用该URI创建一个XNamespace对象:
private static readonly XNamespace serv = "...";
string value = doc .Descendants(serv + "header").First() .Descendants(serv + "response").First() .Descendants(serv + "result").First() .Value;
顺便说一句,你应该考虑使用.Element()而不是.Descendants()。First()。
原文地址:https://www.jb51.cc/xml/293403.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。