如何在C#中使用XmlDocument获取特定节点的内容?

时间:2013-08-14 00:21:28

标签: c# xml xmldocument

我有一个XML文件,如下所示:

<root>
    <song id="1">
        <name> A Whole New World </name>
        <artist> Lea Salonga </artist>
    </song>
    <song id="2">
        <name> Colors of the Wind </name>
        <artist> Judy Kuhn </artist>
    </song>
    <song id="3">
        <name> Reflection </name>
        <artist> Lea Salonga </artist>
    </song>
    <song id="4">
        <name> Part of Your World </name>
        <artist> Sierra Boggess </artist>
    </song>
</root>

我想用C#解析这个XML文件。我知道我应该使用System.Xml.XmlDocument来解析XML文件。 Microsoft文档说方括号运算符[Name]仅返回“具有指定Name的第一个子元素”。

所以我的问题是: 如何从上面的示例XML文件中获取id为4的歌曲的名称?

2 个答案:

答案 0 :(得分:2)

查看Xpath并使用xpath查询,您可以在此处http://www.xpathtester.com/test

进行测试
//song[@id="4"]/name

在c#escape&#34; char与\ like

"//song[@id=\"4\"]/name"

答案 1 :(得分:0)

如果您不想使用Xpath查询,可以使用旧方法:

您可以遍历子节点,检查每个子元素的名称是“song”,然后检查属性,然后获取名称。但是Xpath会更短。