2

我们倾向于使用 TPE 进行 BAM 跟踪,因为它可以独立于我们的编排进行部署。

但是,在我们的流程中,我们需要跟踪一个消息负载属性,该属性与消息的根 XML 元素具有 1:N 的关系。

尽管存在 1:N 关系,但仅提取此属性的第一个值就足以满足我们的跟踪需求。

像往常一样,如果我们尝试跟踪它,则会记录以下 XLANG 消息:

AmbiguousXPathException - The result set for the XPath expression ... 
contains more than a single node

我们尝试直接修改 BTT XPath 以仅选择此属性的第一个实例

我试过了

'XPath="//*[local-name()='Property' and namespace-uri()='{URI}' ...]/[1]'

但随后得到错误“表达式必须评估为节点集”

更简单

'//Property[1]' and '//Property[position() = 1]'

没有错误,但这也不会拉出我的财产。

最后,谁能解释 BTT 文件中 XPath 和 SomXPath 之间的区别?

4

1 回答 1

3

这就像在没有提供任何 XML 文档的情况下在黑暗中拍摄,但您可以试试这个:

(//*[local-name()='Property' and namespace-uri()='{URI}' ...])[1]

这是一个不选择一个节点的常见问题解答//x[1]而选择一个节点(//x)[1]

第一个意味着:每个名为 的元素x,即其父元素的第一个子元素。

第二个意思是:文档中的第一个元素x

于 2010-06-25T13:29:04.170 回答