0
私のコードの一般的な目的は、XMLドキュメント内のいくつかの情報を表示するHTMLドキュメントを生成することです。 私は自分のIDに基づいて医師の名前を取得しようとしています。 は、ここに私のXML文書は次のようになります。xsltの変数を使用して異なるキーとキーを照合する方法は?
<hospital>
<doctors>
<doctor>
<name>john</name>
<id>1</id>
...
</doctor>
<doctor>
<name>steve</name>
<id>2</id>
...
</doctor>
</doctors>
<records>
<record>
<doctor id="1" />
<date>...</date>
<patient>
...
</patient>
</record>
</records>
</hospital>
これは私のXSLTコードです:私は読むことができます私のHTMLで
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="ids" match="doctor" use="id" />
<xsl:template match="/">
...
<xsl:apply-templates select="hospital/records/record"/>
...
</xsl:template>
<xsl:template match="record">
...
Doctor identification : <xsl:value-of select="doctor/@id" />
<xsl:variable name="docId" select="/doctor/@id" />
<xsl:value-of select="key('ids',$docId)/hospital/doctors/doctor/name"/>
...
</xsl:template>
</xsl:stylesheet>
:
"ドクター識別:医師のID"
私は以下を得ることができます:
"医者の身分証明書医師の医者の名前 "
私はxsltコードが機能しない理由を理解しようと数時間を費やしました。 これは割り当てであり、xpath "hospital/records/record"を使用する必要があります。 私の質問が十分に明確であることを願っています。 ありがとうございました!