我正在尝试学习 xslt,并且我正在使用一个看起来像这样的 xml。
<Beats>
<Beat>
<Personal type="set">
<Usages type="box">
1233
</Usages>
<NonUsages type="box">
4122
</NonUsages>
</Personal>
<NonPersonal type="unset">
<Damages type="box">
6466
</Damages>
<NonDamages type="box">
5544
</NonUsages>
</NonPersonal>
<Confidential type="set">
<Discounts type="box">
1233
</Discounts>
<NonDiscounts type="box">
4122
</NonDiscounts>
</Confidential>
</Beat>
</Beats>
我目前的目标是打印出内部标签内的数字。但是我不能将标签的名称用作选择器,因为只有属性“类型”很重要。我尝试使用以下 xslt。但它似乎没有工作。
<xsl:output method="text"/>
<xsl:template match="*">
<html>
<body>
<h2> Test</h2>
<xsl:for-each select="//Beats/Beat/[@type='set']">
<xsl:value-of select="[@type='box'] />
<br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我究竟做错了什么 ?
我想不通的另一件事是如何在使用属性作为选择器的同时获取标签的名称。代替
<xsl:value-of select="[@type='box'] />
它给出了标签内的内容;我可以使用什么来获取包含此“type=box”属性的标签的名称?(例如,Usages、NonUsages 等。)