- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试对 xpath 查询的结果进行排序,但它失败了。
输出:
ABC
DEF
但我期待:
DEF
ABC
源代码如下所示,它使用 XML 表达式并对结果进行排序:
var doc = new XPathDocument("testmsg2.xml");
var nav = doc.CreateNavigator();
const string query = "//Z/X/Code";
var expr = nav.Compile(query);
expr.AddSort("Code",
XmlSortOrder.Descending,
XmlCaseOrder.None,
"",
XmlDataType.Text);
switch (expr.ReturnType)
{
case XPathResultType.NodeSet:
var nodes = (XPathNodeIterator)nav.Evaluate(expr);
while (nodes != null && nodes.MoveNext())
{
if (nodes.Current == null)
continue;
if (nodes.Current.HasChildren)
{
var childIter = nodes.Current.SelectChildren(XPathNodeType.All);
while (childIter.MoveNext())
{
if (childIter.Current != null)
Console.WriteLine(childIter.Current.Value);
}
}
else
{
Console.WriteLine(nodes.Current.Value);
}
}
break;
}
此示例简化了 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<Z>
<X>
<Code>ABC</Code>
</X>
<X>
<Code>DEF</Code>
</X>
</Z>
最佳答案
AddSort
方法采用上下文绑定(bind)到 XPathExpression
的 XPath 表达式你已经编译了。在你的例子中,XPathExpression
是针对 <Code>
编译的元素。做AddSort("Code")
暗示您具有以下 XML:
<Code>
<Code>
</Code>
</Code>
相反,您可以将表达式编译为 X
:
const string query = "//Z/X";
或者您可以在当前节点(即 Code
)、.
上排序:
expr.AddSort(".", XmlSortOrder.Descending, XmlCaseOrder.None, "", XmlDataType.Text);
关于c# - XPathExpression AddSort 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7848192/
我正在尝试编写一种方法来执行 JDOM2 XPath。我希望能够传入任何类型的过滤器(例如 Filter 或 Filter 。我正在传入一个 Element。Element 是一个扩展 Content
是否可以使用 XPathExpression.AddSort 对元素进行排序,而不仅仅是对节点进行排序? 如果我将 MSDN 文档中的示例代码更改为 XPathExpression.AddSort一点
我对 XPathExpression 的工作还很陌生,我正在尝试构建一个表达式来将属性值检索到我的自定义 java 对象(即 Message)中。下面是虚拟 XML,其中包含许多消息节点。 我的 Ja
我解析 XML 并使用 XPath 想要计算总和。 我尝试: long resultSum = 0L; DocumentBuilderFactory factory = DocumentBuilder
我想在 XPathExpression 中传递一个变量的值。我想将 id 值放在一个变量中。我怎样才能做到这一点?下面是代码; XPathExpression expr = xpath.compile
我正在尝试从 USGS 解析一些 XML。 Here's an example “parameterCd”参数列出了我要返回的 3 项数据。我可能会也可能不会全部 3 回来。 我正在使用 javax
浏览 XPath.compile API,我的印象是它会返回一个有效的 XPathExpression 或抛出。 事实上,任何编译器都会返回一个不可“运行”的对象,这是没有意义的。 因此,我有点惊讶的
如果我得到一个 XPathNavigator,并用它来编译 XPathExpression exp,我使用 exp 的方式有哪些限制?我可以将 exp 与不同的导航器一起使用吗?我知道它可以运行,并且
我想构造一个 xpath 查询,这样 xpathexpression .evaulate 返回以任意字符串为前缀的值列表。 使用单个结果实现此目的是一个简单的 concat('PREFIX:',/re
我正在尝试对 xpath 查询的结果进行排序,但它失败了。 输出: ABC DEF 但我期待: DEF ABC 源代码如下所示,它使用 XML 表达式并对结果进行排序: var doc = new X
我正在尝试从 standalone.xml(Wildfly 9.0) 中提取数据库凭证(链接到 8.1 版本)。为此使用 XPath,我面临着我的 XPathExpression 无法正常工作的问题,
对于以下 xml: Peter Tales from Somewhere 1
我有一个 XML 文档,其中包含多个 hpp:HourlyHistoricalPrice 元素,如下所示: 1025127 20161231T000000 AIBO
有了这样一棵dom树: 如何使用xpath获取attr样式的标签tr? 我尝试过 //tr[@style] 的 xpath表达式,但它返回 0 trs。 如果我使用 //tr[@*] 它会返回
我解析一个非常大的 xml 文件(来自 jpylyzer,一个 jp2 属性提取器)。此 xml 包含许多 JP2 图像的属性,每个图像都具有相同的元素,例如: //results/jpylyzer/
我有一堆用于读取 XML 文件的 XPathExpressions。我现在需要走另一条路。 (根据我拥有的值生成一个 XML 文件。) 这里举个例子来说明。假设我有一堆这样的代码: XPathExpr
我当前的程序需要使用编程方式创建一个 XPathExpression 实例以应用于 XmlDocument。 xpath 需要使用一些 XPath 函数,如“ends-with”。但是,我找不到在 X
本文整理了Java中org.w3c.dom.xpath.XPathExpression.evaluate()方法的一些代码示例,展示了XPathExpression.evaluate()的具体用法。这
我正在尝试在 XPathExpression 对象中使用 Microsoft XPath 扩展函数(例如 ms:string-compare http://msdn.microsoft.com/en-
我正在清理我的应用程序中的工作代码,我注意到我正在重用 XPathFactory、XPath、XPathExpression 对象在我的代码中的多个位置,并认为我会清理它并设置一个方法来执行此操作。我
我是一名优秀的程序员,十分优秀!