【发布时间】:2011-03-16 07:09:04
【问题描述】:
我正在寻找一种方法来连接两个任意的有效 XPath 表达式来构建一个新的 XPath 表达式。
实际上,我想将第二个 XPath 表达式应用于第一个 XPath 表达式的结果。
以这个 XML 为例:
<foo>
<bar>
<baz />
</bar>
<foo>
XPath 表达式/foo 显然会返回根元素,而/bar 不会返回任何内容。但是/bar 应用于/foo 的结果应该返回<bar>元素。
现在最简单的实现是只使用字符串连接来构建/foo/bar 并评估它以获得<bar>。这适用于这种特定情况。
现在我的问题是:总是那么简单吗?是否有任何类型的 XPath 表达式不会产生有效的表达式或会导致意外结果?
如果不能以这种方式验证一些晦涩的 XPath 表达式,这不是什么大问题,但我希望常用的也能工作。
如果有问题:是否有任何类型的串联适用于更多情况?
【问题讨论】:
-
好问题 (+1)。有关详细讨论和许多示例,请参阅我的答案。