xml - 使用 Xpath 谓词根据父子节点的值选择节点值
问题描述
我有这个结构,我需要从一个节点中选择一个值,如果它的父级 4 步的子级包含一个特定的值。
到目前为止,我已经尝试了以下 xPath:
<Contact>
<Id>
<xsl:value-of select="EFACT_D01B_ORDERS/NADLoop1/CTALoop1/CTA/C056[../../../NAD01 = 'PO']/C05601"/>
</Id>
</Contact>
我需要的值在 C05601 中。
这是架构的结构,两个重要节点用蓝色标记:
该结构也是循环的,并在输入文档中出现多次。基本上,如果 NAD01 = "PO",则 C05301 中的值应映射到 Contact/Id 字段。
解决方案
只需将条件移至共同祖先即可...
<xsl:value-of select="EFACT_D01B_ORDERS/NADLoop1[NAD/NAD01 = 'PO']/CTALoop1/CTA/C056/C05601"/>
(注意,我认为您当前的语句不起作用,因为您错过了NAD
表达式中的