我有一些XML,我正在使用XSLT轉換以構建鏈接。首先,我的模板在具有特定屬性的節點上進行匹配,並存儲可以正常工作的該屬性的值。然後,我需要找到一個id屬性與我剛存儲的值相匹配的節點。但是,當我嘗試選擇節點並提取id屬性進行比較時,它將選擇我要定位的節點的所有子節點,即使我指定僅需要id屬性。我如何只選擇id屬性?xslt僅指定屬性時選擇所有子節點
XML
<div>
<bibl id="label2212" n="M">
<date n="created">194</date>
<title level="m">test title 1</title>
<kw type="subject">Ⓑ ...</kw><!-- EXTRA -->
<kw type="subject">Ⓔ ...</kw><!-- EXTRA -->
<kw type="subject">Ⓖ Indonesia < Southeast Asia < Asia</kw><!-- EXTRA -->
<note type="comment">Linked reference: ABIA 13, 1938/658
<xref n="label658">label658</xref>
</note>
</bibl>
<bibl id="label658" n="M">
<date n="created">194</date>
<title level="m">test title 2</title>
<kw type="subject">Ⓑ ...</kw><!-- EXTRA -->
<kw type="subject">Ⓔ ...</kw><!-- EXTRA -->
<kw type="subject">Ⓖ Indonesia < Southeast Asia < Asia</kw><!-- EXTRA -->
</bibl>
XSLT
<xsl:template match="note[@type = 'comment' ]/xref[@n]">
<xsl:variable name="n-xref"><xsl:value-of select="@n"/></xsl:variable>
<xsl:variable name="test"><xsl:value-of select="../../../bibl[@id]"/></xsl:variable>
<a>
<xsl:attribute name="href" select="$test"></xsl:attribute>
</a>
</xsl:for-each>-->
<xsl:apply-templates/>
</xsl:template>enter code here
當運行變量測試包含bibl節點 的所有子節點我都甚至試圖選擇=」 ../../../ bibl [@ id = $ n-xref]「,它也不起作用
你的問題不清楚。請發佈您的示例的預期結果。 - 提示:使用**鍵**作爲交叉引用。 –