XSLT:根据多个属性的值选择节点

安德烈·路易斯

我有一个 XSLT,用于将 XML 解析为 json。我粘贴在我试图从中检索数据的部分下方:

<datafield tag="856" ind1="4" ind2="0">
    <subfield code="u">abc</subfield>
</datafield>
<datafield tag="856" ind1="4" ind2="2">
    <subfield code="u">xyz</subfield>
</datafield>

我想从节点中选择数据 tag=856 AND ind1=4 AND ind2=2

我设法检查此节点是否存在,但我使用以下规则获取两个节点的值:

<xsl:if test="marc:datafield[@tag='856'] and marc:datafield[@ind1='4'] and marc:datafield[@ind2='2']">
    <z:index name="thumbnailUrl_s Thumbnail">
        <xsl:value-of select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
    </z:index>
</xsl:if>

有没有办法让我xsl:value-of只返回与我上面描述的规则匹配的节点?我一直在 StackOverflow 中寻找类似的答案,到目前为止我找不到一个有同样问题的答案。

zx485

您可以使用此代码:

<xsl:if test="marc:datafield[@tag='856' and @ind1='4' and @ind2='2']">
    <z:index name="thumbnailUrl_s Thumbnail">
        <xsl:value-of select="marc:datafield[@tag='856' and @ind1='4' and @ind2='2']/marc:subfield[@code='u']"/>
    </z:index>
</xsl:if>

或者,在模板中:

<xsl:template match="marc:datafield[@tag='856' and @ind1='4' and @ind2='2']">
    <z:index name="thumbnailUrl_s Thumbnail">
        <xsl:value-of select="marc:subfield[@code='u']"/>
    </z:index>
</xsl:template>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章