嗨,我有一个这样的 XML。
<RECORDSET>
<ROW>
<INSTANCE_NAME>ABC</INSTANCE_NAME>
<VALUE>12000</VALUE>
</ROW>
<ROW>
<INSTANCE_NAME>DEF</INSTANCE_NAME>
<VALUE>1500</VALUE>
</ROW>
</RECORDSET>
请帮助我编写 XSLT 以获取 INSTANCE_NAME = 'DEF' 的 VALUE 标记的值。谢谢
选择VALUE
依据INSTANCE_NAME
XML:
<RECORDSET>
<ROW>
<INSTANCE_NAME>ABC</INSTANCE_NAME>
<VALUE>12000</VALUE>
</ROW>
<ROW>
<INSTANCE_NAME>DEF</INSTANCE_NAME>
<VALUE>1500</VALUE>
</ROW>
</RECORDSET>
XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:strip-space elements="*" />
<xsl:template match="RECORDSET">
<xsl:value-of select="ROW[INSTANCE_NAME = 'DEF']/VALUE" />
</xsl:template>
</xsl:stylesheet>
输出:
1500
您正在寻找的概念称为谓词- 查找具有您可以使用的ROW
元素INSTANCE_NAME
DEF
/RECORDSET/ROW[INSTANCE_NAME = 'DEF']
因此要提取它们的值,您将使用
/RECORDSET/ROW[INSTANCE_NAME = 'DEF']/VALUE
您可以将方括号读作“where”或“ such that”,即找到 RECORDSET 元素,然后在每个元素中找到ROW
元素,然后在每个元素中找到元素. INSTANCE_NAME = 'DEF'
VALUE