私は複数の属性を持つXMLを持っています。要素が目的の場所に移動するような条件チェックを実行したい。私は、それぞれの出力を達成するために使用できる用語またはタグを認識していません。XSLTで複合条件チェックを実行する方法
XML:
<Collection>
<Allparts>
<part>
<number>001</number>
<material>Platinum</material>
<price>High</price>
</part>
<part>
<number>002</number>
<material>Gold</material>
<price>Medium</price>
</part>
<part>
<number>003</number>
<material>Silver</material>
<price>Low</price>
</part>
</Allparts>
<Allboms>
<bom>
<Part-number>001</Part-number>
</bom>
<bom>
<Part-number>002</Part-number>
</bom>
<bom>
<Part-number>003</Part-number>
</bom>
</Allboms>
</Collection>
必要な出力:
<Collection>
<Allparts>
<part>
<number>001</number>
<material>Platinum</material>
<price>High</price>
</part>
<part>
<number>002</number>
<material>Gold</material>
<price>Medium</price>
</part>
<part>
<number>003</number>
<material>Silver</material>
<price>Low</price>
</part>
</Allparts>
<Allboms>
<bom>
<Part-number>001</Part-number>
<material>Platinum</material>
<price>High</price>
</bom>
<bom>
<Part-number>002</Part-number>
<material>Gold</material>
<price>Medium</price>
</bom>
<bom>
<Part-number>003</Part-number>
<material>Silver</material>
<price>Low</price>
</bom>
</Allboms>
</Collection>
私が試みXML:
<xsl:template match="bom">
<xsl:copy>
<xsl:choose >
<xsl:when test= "../../bom/Part-number=../../part/number" >
<xsl:apply-templates select= "../../part/material" mode="move" />
</xsl:when >
</xsl:choose >
<xsl:apply-templates select= "@*|node()" />
</xsl:copy>
</xsl:template>
修正を提案してください:
ルックアップテーブルを作成して検索するには、 ''と 'key(...)'関数を読む必要があります。 –
あなたはどのXSLTバージョンを使用していますか? XSLT-1.0またはXSLT-2.0? –
@LingamurthyCS私は '