У меня есть 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 Я использую '