我对 xslt 比较陌生,但我有一些运气来设计一个巨大的 xml 文件。现在我被困在一个地方,无法继续。可以说xml文件的结构有点像
<xxx>
.......
.......
.......
<Field id="123" type="fld" elem="3">
<td:value passed="true"> 25 </td:value>
</Field>
.......
.......
.......
</xxx>
我目前在 Field 节点。如果我这样做,<xsl:value of select="name()" />
它会给出“Field”,如果我这样做,<xsl:value of select="@type" />
我会得到“fld”。但如果我这样做,<xsl:value of select="." />
我得到的值<td:value>
是 25。
我担心的是我需要在 td:value 中获取“通过”属性的值。如果我从当前位置使用以下模板,我可以访问该属性。
<xsl:apply-templates select="*[@passed]" />
<xsl:template match="*[@passed]" >
<xsl:value-of select="@passed" />
</xsl:template>
但问题是“通过”属性可能并不总是存在,所以我需要<td:value>
只使用节点名称来访问节点。
我试过
<xsl:apply-templates select=".//td" />
<xsl:apply-templates select=".//td:value" />
<xsl:apply-templates select=".//*" />
<xsl:apply-templates select=".*" />
<xsl:apply-templates select="td" />
似乎没有任何效果。我如何从 Field 节点到达那个 td:value 节点?