【发布时间】:2011-02-22 07:08:48
【问题描述】:
我正在尝试从字符串文字执行 xpath 表达式。我从一些变量创建我的 xpath,所以我无法预先计算它们。我最终得到了这样的结果:
count(concat("//sales:", "$variable", "Available"))
这会导致错误:
Can not convert #STRING to a NodeList!
我认为如果我能以某种方式evaluate() concat 的结果就足够了,因此它将成为实际的 NodeList。是否有适当的功能来执行此操作?
我正在 Apache Camel 中进行此文本操作,但这在 IMO 中并不重要。
已编辑:
更准确地说:Apache Camel 作为一个管道工作,XML 穿过它,您可以通过某些方式处理这些 XML——比如根据 XML 的内容或结构强加一些规则。这就是为什么我需要它是动态的。
我的情况是这样的:
- 查看xml并获取元素operationName的内容
- 在其他文档中搜索由小写 operationName 和字符串文字“Available”构成的元素
所以如果我的 operationName 是 FOOBAR,那么我想检查节点 //sales:foobarAvailable
是否存在【问题讨论】:
-
你需要dyn:evaluate,尽管它在实现中的支持很差。
-
动态评估内部 XPath 表达式?宿主语言不应该在评估之前做那个组合吗?
标签: xml xpath apache-camel