c# 怎么查询xml指定根元素下子元素的值

 我来答
哲事姓无
推荐于2016-01-02 · TA获得超过1176个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:443万
展开全部

推荐使用 XPathDocument载入xml 然后使用 xpath 进行查询。这个应该是最快的。


或是使用 XmlDocument 载入xml ,然后一级一级的向下枚举子节点(也可以使用xpath)

还有就是使用 XmlReader 进行处理,不推荐


以zhanggk315818 的样本为例子(xml 格式有小错误,需要修改后使用),如下:


        // using System.Xml;
        var document = new XmlDocument();
        document.LoadXml(LoadTestXml());

        // 层次有要求,读出id 的值 
//        var nodeList = document.SelectNodes(@"NewDataSet/Table/ID/text()");
        // 或者 层次没有要求, 读出id的值
//        var nodeList = document.SelectNodes(@"//ID/text()");
        // 读出name 值
        var nodeList = document.SelectNodes(@"//ID/@name");

        foreach (XmlNode node in nodeList)
        {
            Console.WriteLine(node.Value);
        }

        Console.ReadKey();
扬璞玉6e
推荐于2018-04-05 · TA获得超过223个赞
知道小有建树答主
回答量:327
采纳率:0%
帮助的人:119万
展开全部
测试文件
<?xml version="1.0" standalone="yes"?>
  <NewDataSet>
    <xs:schema id="NewDataSet" xmlns:xs="……">
    <Table>
      <ID name="第一个">1</ID>
      <ParentID>0</ParentID>
    </Table>
    <Table>
      <ID name="第二个">2</ID>
      <ParentID>0</ParentID>
    </Table>
    <Table>
      <ID name="第三个">3</ID>
      <ParentID>0</ParentID>
    </Table>
  </NewDataSet>

创建XmlNodeList对象
XmlNodeList nodeList = doc.SelectNodes("NewDataset");
XmlNodeList nodeCount = nodeList.Item(0).SelectNodes("Table");
循环遍历XmlNodeList
foreach( XmlNode item in nodeCount )
{
  string id = item.FirstChild.InnerXml; //结果为1,2,3
  string name=item.FirstChild.Attributes["name"].value; //结果为 第一个,第二个,第三个
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式