【发布时间】:2010-10-18 00:46:36
【问题描述】:
我有以下 XML:
<iq xmlns="jabber:client" to="39850777771287777738178727@guest.google.com/agsXMPP" xml:lang="en" id="sub23" from="search.google.com" type="result">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
<subscription subscription="subscribed" subid="5077774B57777BD77770" node="search" jid="39850777771287777738178727@guest.google.com/agsXMPP" />
</pubsub>
</iq>
我试过用 linq to sql 解析,但似乎不明白这些是不同的节点。它将整个 iq 组合成一个元素。
任何人都可以帮助使用 XML 解析这个吗?
我要获取的数据是 subid="5077774B57777BD77770" 和 id="sub23"
谢谢!
编辑:
这是我的代码,尝试了两种方式:
XDocument doc = XDocument.Parse("<xml>" + iq.ToString() + "</xml>");
var results = from feed in doc.Elements("xml")
select new
{
Id = (string)feed.Element("iq").Attribute("id"),
Subid = (string)feed.Element("iq").Element("pubsub").Element("subscription").Attribute("subid")
};
和
var doc = new System.Xml.XmlDocument();
doc.LoadXml(iq.ToString());
var searchId = doc.Attributes["id"];
var subid = doc.SelectSingleNode("/pubsub/subscription").Attributes["subid"];
【问题讨论】:
-
请出示您的代码
-
@Hogan 刚刚添加了我上面的代码
-
好问题,+1。请参阅我的答案,以获取有关在 XML 文档具有默认命名空间时如何构造 XPath 表达式的解释和完整代码示例的参考。
标签: c# xml xpath xml-serialization xml-namespaces