【发布时间】:2015-05-20 14:29:54
【问题描述】:
我想将参数传递给 XPath 表达式。
(//a/b/c[x=?],myParamForXAttribute)
我可以用 XPath 1.0 做到这一点吗? (我试过string-join,但它在 XPath 1.0 中没有)
那我该怎么做呢?
我的 XML 看起来像
<a>
<b>
<c>
<x>val1</x>
<y>abc</y>
</c>
<c>
<x>val2</x>
<y>abcd</y>
</c>
</b>
</a>
我想得到<y>元素值,其中x元素值为val1
我试过//a/b/c[x='val1']/y,但没用。
【问题讨论】:
-
如果您使用的是 Axiom 库,您应该标记您的问题 Java,并期望得到包含一些 Java 的答案。
-
您从一个问题开始(如何在 XPath 表达式中使用变量)。我有answered that below。现在,您添加了另一个问题(您的新 XPath,它不使用变量并尝试选择 完全不同的 元素,不起作用)。为您的新问题添加一个新问题,并包含足够的细节和上下文来重现您的问题 - 您在这里没有这样做。
-
顺便说一句,为什么要打扰
//a/b/c?如果您打算使用递归搜索的所有性能影响(这很愚蠢,但这就是您使用//而不是/开始时所做的事情),不妨使用//x[.='val1']/../y,并且不需要关心a或b。