ルートに移動して、それぞれの内部の他のノードにアクセスできないXSL変換を作成しています。
私が1つのコンテキスト内にいると仮定します。そこから値を取得して同じコンテキストに戻るために、外部ノードに移動する必要がある状況があります。
これが私のXMLファイルです。
<xml version=1.0>
<abc>
<parts>
<part pno="10506">
<pname>Land Before Time I</pname>
<qoh>200</qoh>
<price>19.99</price>
<level>20</level>
</part>
…
</parts>
<orders>
<order ono="1022" takenBy="1001" customer="2222">
<receivedDate>1995-02-13</receivedDate>
<shippedDate>1995-02-20</shippedDate>
<items>
<item>
<partNumber>10601</partNumber>
<quantity>1</quantity>
</item>
<item>
<partNumber>10701</partNumber>
<quantity>1</quantity>
</item>
</items>
</order>
.....
</orders>
</abc>
xsl:for-eachの「item」タグ内で反復していますが、「part」タグ内に入り、値を取得して同じコンテキストに戻りたいと思います。
詳細については、テーブルを埋めています。私のテーブルには4つの列があります。
- partname:名前を取得するために行く必要
<part>
があります。(これは私が立ち往生した場所です) - 数量:それはのサブ要素であるため、私にとっては問題ではありません
<item>
。 - 価格:私は同じ問題に直面しています。
- 合計:簡単です。
パーツタグからパーツ名と価格の値を取得するのを手伝ってください。
次のコードは私には機能しません。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet>
<table>
<xsl:param name="param1" />
<xsl:variable name="temp" select ="name(/*)"/>
<xsl:for-each select=".//order[@ono=$param1]/items/item">
<tr>
<td> <xsl:value-of select="$temp//part[@pno=partNumber]/pname"/> </td>
<td> <xsl:value-of select="quantity"/> </td>
<td> <xsl:value-of select="$temp//part[@pno=partNumber]/price"/> </td>
<td> <xsl:value-of select="quantity*$temp//part[@pno=partNumber]/price"/> </td>
</tr>
</xsl:for-each>
</table>
<xsl:stylesheet>
グーグルを試しましたが、問題の正確な解決策を得ることができませんでした。私が書いたコードはいくつかのエラーをスローします。「temp」の選択値をroot(。)に変更してみましたが、機能しません。
ヒントが必要です。答えは必要ありません。ヒントだけで十分です。
私は過去5時間この問題で立ち往生しました。返信して助けてください。