私は xslt に比較的慣れていませんが、巨大な xml ファイルのスタイルを整えることができました。今、私はある場所で立ち往生しており、先に進むことができません。xmlファイルの構造が次のようになっているとしましょう
<xxx>
.......
.......
.......
<Field id="123" type="fld" elem="3">
<td:value passed="true"> 25 </td:value>
</Field>
.......
.......
.......
</xxx>
現在、フィールド ノードにいます。実行する<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 ノードにアクセスするにはどうすればよいですか?