使用Xpath谓词根据父节点的子节点的值选择节点值

时间:2019-07-18 12:42:42

标签: xml xslt xpath biztalk

我具有这种结构,如果其父级4的子级包含特定值,则需要从节点中选择一个值。

到目前为止,我已经尝试了以下xPath:

<Contact>
    <Id>
        <xsl:value-of select="EFACT_D01B_ORDERS/NADLoop1/CTALoop1/CTA/C056[../../../NAD01 = 'PO']/C05601"/>
    </Id>
</Contact>

我需要的值在C05601中。

这是架构的结构,两个重要节点用蓝色标记:

enter image description here

该结构也被循环,并在输入文档中多次出现。基本上,如果NAD01 =“ PO”,则应将C05301中的值映射到Contact / Id字段。

1 个答案:

答案 0 :(得分:0)

只需将条件移至共同祖先...

<xsl:value-of select="EFACT_D01B_ORDERS/NADLoop1[NAD/NAD01 = 'PO']/CTALoop1/CTA/C056/C05601"/>

(请注意,我认为您当前的语句不起作用,因为您错过了表达式中的NAD