相关疑难解决方法(0)

用XPath排序 - 不是XSL

在使用带有排序参数的System.Xml运行selectNodes(XPATH)的XPath DOM编程中有什么办法吗?

例如,使用以下XML和程序以与文档相同的顺序写入值(降序).有没有办法使用XPath以升序获取值?

注意.当然,您可以在XSL中进行预排序,但是我需要更新值,因为我正在循环它们.由于XSL给了我一个元素的排序副本,而不是实际的元素本身,我不能使用XSL.

这是一些XML,一个程序输出

public static void Main() {

        XmlDocument xml = new XmlDocument();
        xml.Load( "t.xml" );

        // SelectNodes gets in document order, but I want in 
            // ascending order based on @value
        foreach( XmlNode ndNode in xml.SelectNodes( "/xml/ele" ) ) {
            Console.WriteLine( ndNode.Attributes["value"].Value );
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是XML

<xml>
<ele value='3' test='Third'/>
<ele value='2' test='Second'/>
<ele value='1' test='First'/>
</xml>
Run Code Online (Sandbox Code Playgroud)

最后输出文件(降序)顺序.我想要一个以升序返回节点的XPath.

3
2
1
Run Code Online (Sandbox Code Playgroud)

PS,我System.Xml在Visual Studio 2008 .NET 3.5中使用

c# xml xpath

4
推荐指数
2
解决办法
6024
查看次数

XPath 3.x - 排序函数

我需要使用纯 XPath 3.0 对元素序列进行排序,因此没有 XQuery、没有 XSL-T 也没有代码。我尝试按照这个关于如何使用排序函数的答案,但我不是 XPath 专家,所以我不知道如何使用它。

\n\n

所以,我的文档基本上有以下结构:

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<AppointmentList>\n    <Appointment id="11" creatorID="1" creationDate="2018-03-01" reschedulable="ja" appointmentSeries="ja">\n        <Start date="2018-03-14" time="12:00:00"/>\n        <End date="2018-03-14" time="13:30:00"/>\n        <Description>Vorf\xc3\xbchrung</Description>\n    </Appointment>\n\n    <Appointment id="22" creatorID="2" creationDate="2018-02-14" reschedulable="ja" appointmentSeries="nein">\n        <Start date="2018-03-20" time="13:00:00"/>\n        <End date="2018-03-20" time="14:00:00"/>        \n        <Description>Programm Meeting</Description>\n        <Benachrichtigung art="EMail"/>\n    </Appointment>\n\n    <Appointment id="33" creatorID="3" creationDate="2018-02-23" reschedulable="nein" appointmentSeries="ja">\n        <Start date="2018-02-24" time="15:00:00"/>\n        <End date="2018-02-24" time="16:00:00"/>        \n        <Description>Burglary Report</Description>\n        <Benachrichtigung art="Beep"/>\n    </Appointment>\n\n    <Appointment id="44" creatorID="1" creationDate="2018-01-01" reschedulable="nein" appointmentSeries="nein">\n        <Start date="2018-05-01" time="10:00:00"/>\n        <End date="2018-05-01" time="17:00:00"/>        \n …
Run Code Online (Sandbox Code Playgroud)

xml xpath xpath-3.0

3
推荐指数
1
解决办法
1365
查看次数

标签 统计

xml ×2

xpath ×2

c# ×1

xpath-3.0 ×1