gpt4 book ai didi

c# - XPathExpression 添加排序

转载 作者:行者123 更新时间:2023-12-03 17:18:50 26 4
gpt4 key购买 nike

是否可以使用 XPathExpression.AddSort 对元素进行排序,而不仅仅是对节点进行排序?

如果我将 MSDN 文档中的示例代码更改为 XPathExpression.AddSort一点所以我请求一个元素而不是整个节点排序顺序不起作用。

var doc = new XPathDocument("contosoBooks.xml");
var nav = doc.CreateNavigator();

var expr = nav.Compile("/bookstore/book/title");

expr.AddSort("title", XmlSortOrder.Descending,
XmlCaseOrder.None, "", XmlDataType.Number);

var iterator = nav.Select(expr);
while (iterator.MoveNext())
{
Console.WriteLine(iterator.Current);
}

我希望这个输出:
The Gorgias
The Confidence Man
The Autobiography of Benjamin Franklin

但输出是这样的:
The Autobiography of Benjamin Franklin
The Confidence Man
The Gorgias

这是供您引用的xml文件
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>

最佳答案

它看起来像一个重复的问题 - 请参阅 XPathExpression AddSort fails

所以在你的情况下,代码必须是这样的:

var expr = nav.Compile("/bookstore/book");

expr.AddSort("title", XmlSortOrder.Descending,
XmlCaseOrder.None, "", XmlDataType.Number);

或者
var expr = nav.Compile("/bookstore/book/title");

expr.AddSort(".", XmlSortOrder.Descending,
XmlCaseOrder.None, "", XmlDataType.Number);

关于c# - XPathExpression 添加排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7805637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com