Xml XSLT-如果属性等于特定值,如何获取标记的值
我试图根据不同标记的属性获取不同的值。 我的xml输入:Xml XSLT-如果属性等于特定值,如何获取标记的值,xml,xslt,Xml,Xslt,我试图根据不同标记的属性获取不同的值。 我的xml输入: <parties> <party code="ADV" id="BOFAUS3NXXX" extension="1"> <name1>BANK OF AMERICA, N.A.</name1> <city>Code: NY3-222-14-03</city> <street>Bank of Ameri
<parties>
<party code="ADV" id="BOFAUS3NXXX" extension="1">
<name1>BANK OF AMERICA, N.A.</name1>
<city>Code: NY3-222-14-03</city>
<street>Bank of America Merrill Lynch Mail</street>
<country>US</country>
<swift_address/>
</party>
<party code="BNE" id="11111111-1" extension="1">
<name1>BBA Customer 1</name1>
<city>PROVIDENCIA</city>
<street>PROVIDENCIA 1645</street>
<country>ES</country>
<swift_address/>
</party>
</parties>
有人知道吗
提前感谢您要找的表达方式是
<xsl:if test="parties/party/@code='ADV'">
<td>1st Advising Bank Name: <xsl:value-of select="parties/party[@code='ADV']/name1" /></td>
</xsl:if>
然后有一个模板来匹配它
<xsl:template match="party">
<td>1st Advising Bank Name: <xsl:value-of select="name1" /></td>
</xsl:template>
您要寻找的表达式是
<xsl:if test="parties/party/@code='ADV'">
<td>1st Advising Bank Name: <xsl:value-of select="parties/party[@code='ADV']/name1" /></td>
</xsl:if>
然后有一个模板来匹配它
<xsl:template match="party">
<td>1st Advising Bank Name: <xsl:value-of select="name1" /></td>
</xsl:template>
谢谢@Tim C,条件有效,但的值无效:第一通知行名称:因为我有两个标签,可以引用parties/party/name1。是否有方法检索特定标记的值。类似的东西实际上不起作用表达式应该起作用。我修改了我的答案来表达这个意思。在这种情况下,最好尝试使用模板匹配。通过这种方式,你可以将上下文更改为相关的party元素,因此表达式将与之相关。谢谢Tim,但这对我不起作用。检查属性是否相等后使用标记合法吗?语法正确,但可能与名称空间有关。您的XML没有名称空间,但通过在XSLT示例中使用前缀ns1,它表明您的实际XML确实有名称空间。也许您也需要在路径中的名称之前加上ns1前缀?谢谢@Tim C,条件有效,但的值无效:第一通知行名称:因为我有两个标签,可以引用parties/party/name1。是否有方法检索特定标记的值。类似的东西实际上不起作用表达式应该起作用。我修改了我的答案来表达这个意思。在这种情况下,最好尝试使用模板匹配。通过这种方式,你可以将上下文更改为相关的party元素,因此表达式将与之相关。谢谢Tim,但这对我不起作用。检查属性是否相等后使用标记合法吗?语法正确,但可能与名称空间有关。您的XML没有名称空间,但通过在XSLT示例中使用前缀ns1,它表明您的实际XML确实有名称空间。也许您也需要在路径中的名称之前加上ns1前缀?