我无法找到包含XML-Signature的正确XPath表达式。 给出的例子:
<xxx>
<bbb>
<Signature>
<SignedInfo>
...
<Reference>
<Transforms>
<Transform>
<XPath>???<XPath>
<Transform>
<Transforms>
...
<Reference>
<SignedInfo>
...
<Signature>
</bbb>
<bbb>
</bbb>
</xxx>
每个BBB可能有自己的签名(并且XXX不能),并且BBB中不允许ID-Attribute。 BBB可以多次出现。所以我需要告诉签名与其包络节点一起工作。 遗憾的是架构已修复,我知道不是很好,但我必须处理它。
也许here() - 函数([http://www.w3.org/TR/xmldsig-filter2/#function-here)可能有帮助吗?我的建议是:
here()/../../../../../..
它从XPath节点开始(在链接中注明),然后我沿着签名节点走到我的BBB节点,但看起来很混乱。
答案 0 :(得分:0)
我得到了答案:
根本无法通过XPath表达式引用包含父元素。
您需要使用参考ID。