c# - 如何使用 C# 使用 XPath 返回元素值?

标签 c# xpath

我有一个 xml 文件的片段,如下所示:

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="wa_xml2html.xsl"?>
<computeraudit>
    <title>Computer Audit :: 11/13/2012 10:43:22 AM</title>
    <category title="Loaded Modules">
        <subcategory title="">
            <recordset title="">
                <fieldname>Name</fieldname>
                <fieldname>Version</fieldname>
                <fieldname>Modified</fieldname>
                <fieldname>Manufacturer</fieldname>
                <datarow>
                    <fieldvalue>XmlLite.dll</fieldvalue>
                    <fieldvalue>1.3.1000.0</fieldvalue>
                    <fieldvalue>7/13/2009 8:16:21 PM</fieldvalue>
                    <fieldvalue>Microsoft Corporation</fieldvalue>
                </datarow>              
                <datarow>
                    <fieldvalue>zip.dll</fieldvalue>
                    <fieldvalue>6.0.250.6</fieldvalue>
                    <fieldvalue>5/25/2011 8:30:12 AM</fieldvalue>
                    <fieldvalue>Sun Microsystems, Inc.</fieldvalue>
                </datarow>                      
            </recordset>
        </subcategory>
    </category>         
</computeraudit>    

我尝试使用 C# XPath 解析它并获取每个 fieldvalue 元素值。

C# 代码如下所示:

        XPathNavigator nav;
        XPathDocument docNav;
        XPathNodeIterator NodeIter;
        String strExpression;
        docNav = new XPathDocument(@"C:\TEMP\WinAudit\test.xml");

        nav = docNav.CreateNavigator();

        strExpression = "/computeraudit/category[@title=\"Loaded Modules\"]/subcategory/recordset/datarow";

        NodeIter = nav.Select(strExpression);

        while (NodeIter.MoveNext())
        {
            Console.WriteLine(NodeIter.Current.Value);
        }
        Console.ReadLine();

它为每个数据行节点返回一行,并将所有 fieldvalue 元素值连接在一起。

如何返回每个 fieldvalue 元素的每个不同值?

最佳答案

将 XPath 表达式更改为:

"/computeraudit/category[@title=\"Loaded Modules\"]/subcategory/recordset/datarow/fieldvalue"

关于c# - 如何使用 C# 使用 XPath 返回元素值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382591/

相关文章:

html - 使用 Kanna 快速解析 html

使用 MySql 的 C# Windows 应用程序

php - XPath 一次选择多个元素?

php - 可以将DOMXPath::query限制为一定深度吗?

java - XML 流 XPath 处理器算法

xpath - 如何使用 xpath 从此输入中仅获取值 9?

c# - 调用 Task.Delay() 并在几分钟后询问还剩多少时间

c# - 如何在嵌套 ListView 中编辑数据

c# - 如何禁用 "Are you sure you want to leave this page"警报?

c# - Unity Resolver 的这个 lambda 表达式是做什么的