首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用System.Xml选择特定节点?

如何使用System.Xml选择特定节点?
EN

Stack Overflow用户
提问于 2011-09-15 04:21:24
回答 3查看 88关注 0票数 0

我有一个XML文档:

代码语言:javascript
复制
<Item>
   <ID>1</ID>
   <Title>Title1</Title>
   <Rank>1</Rank>
</Item>
<Item>
   <ID>2</ID>
    <Title>Title2</Title>
    <Rank>2</Rank>
</Item>

这个文档有十个项目,我遇到的问题是,我将选择Title2 ID 2和等级1。

代码语言:javascript
复制
 for (int i = 0; i < 10; i++)
 {
      XmlNode titleNode = doc.GetElementsByTagName("Title", NAMESPACE).Item(i);
      XmlNode asinNode = doc.GetElementsByTagName("ID", NAMESPACE).Item(i);
      XmlNode SalesNode = doc.GetElementsByTagName("SalesRank", NAMESPACE).Item(i);
 }

这就是我加载文档的方式。

代码语言:javascript
复制
            WebRequest request = HttpWebRequest.Create(url);
            WebResponse response = request.GetResponse();
            XmlDocument doc = new XmlDocument();
            doc.Load(response.GetResponseStream());
EN

回答 3

Stack Overflow用户

发布于 2011-09-15 06:46:53

代码语言:javascript
复制
XmlNode node = doc.SelectSingleNode("/Item[ID='"+i.ToString()+"']");
XmlNode titleNode = node.SelectSingleNode("Title");
XmlNode asinNode = node.SelectSingleNode("ID");
XmlNode rankNode = node.SelectSingleNode("Rank");
票数 1
EN

Stack Overflow用户

发布于 2011-09-15 04:29:51

您可以使用XML (反)序列化:只需为Item创建一个快速类。XmlSerializer.Deserialize()文档中的完整示例。

当然,这只是解析XML的众多技术(XPath、Linq to XML等)中的一种。做你自己的选择。

票数 0
EN

Stack Overflow用户

发布于 2011-09-15 04:33:14

下面是一个使用XPath的工作示例,我相信这才是您真正需要的。

代码语言:javascript
复制
let doc = XmlDocument()
doc.LoadXml ("<As><A><B>1</B></A><A><B>2</B></A></As>")
let n = doc.SelectSingleNode("As/A[B/text() = '1']")
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7422499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档