Впервые на xslt, пожалуйста, потерпите меня.Я пытаюсь преобразовать один XML-документ в другой.Мне особенно нужно использовать значение узла в качестве критерия выбора для другого узла, но я не уверен, как это сделать.Это было бы аналогично соединению одной таблицы с другой с использованием внешних ключей в SQL.
Источник xml:
<?xml version="1.0" encoding="utf-8" ?>
<AbleCommerceExport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Store>
<StoreId>1</StoreId>
<Name>My Store</Name>
<Products>
<Product>
<ProductOptions>
<ProductOption>
<ProductId>2</ProductId>
<OptionId>3</OptionId>
<OrderBy>0</OrderBy>
<Option>
<Choices>
<Choice>
<OptionChoiceId>8</OptionChoiceId>
<OptionId>3</OptionId>
<Name>3'10" x 5'4"</Name>
</Choice>
<Choice>
<OptionChoiceId>9</OptionChoiceId>
<OptionId>3</OptionId>
<Name>5'4" x 7'8"</Name>
</Choice>
<Choice>
<OptionChoiceId>10</OptionChoiceId>
<OptionId>3</OptionId>
<Name>7'8" x 10'9"</Name>
</Choice>
</Choices>
</Option>
</ProductOption>
</ProductOptions>
<Variants>
<ProductVariant>
<Available>true</Available>
<ProductVariantId>49</ProductVariantId>
<ProductId>2</ProductId>
<Option1>8</Option1>
<Option2>0</Option2>
<Option3>0</Option3>
<Option4>0</Option4>
<Option5>0</Option5>
<Option6>0</Option6>
<Option7>0</Option7>
<Option8>0</Option8>
</ProductVariant>
<ProductVariant>
<Available>true</Available>
<ProductVariantId>50</ProductVariantId>
<ProductId>2</ProductId>
<Option1>9</Option1>
<Option2>0</Option2>
<Option3>0</Option3>
<Option4>0</Option4>
<Option5>0</Option5>
<Option6>0</Option6>
<Option7>0</Option7>
<Option8>0</Option8>
</ProductVariant>
<ProductVariant>
<Available>true</Available>
<ProductVariantId>51</ProductVariantId>
<ProductId>2</ProductId>
<Option1>10</Option1>
<Option2>0</Option2>
<Option3>0</Option3>
<Option4>0</Option4>
<Option5>0</Option5>
<Option6>0</Option6>
<Option7>0</Option7>
<Option8>0</Option8>
</ProductVariant>
</Variants>
</Product>
</Products>
</Store>
</AbleCommerceExport>
Требуемый вывод xml:
<RECORDS>
<RECORD><!-- For each <ProductVariant> node-->
<RECORD_ID ID="49" />
<PROP NAME="ProductVariantId">
<PVAL>49</PVAL>
</PROP>
<PROP NAME="Available">
<PVAL>true</PVAL>
</PROP>
<!-- For each Option[n] retrieve the /Products/Product/ProductOptions/ProductOption/Option/Choices/Choice/Name value -->
<PROP NAME="Option">
<PVAL>3'10" x 5'4"</PVAL>
</PROP>
<PROP NAME="Option">
<PVAL>5'4" x 7'8"</PVAL>
</PROP>
<PROP NAME="Option">
<PVAL>7'8" x 10'9"</PVAL>
</PROP>
</RECORD>
<RECORDS>
XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="Variants">
<RECORDS>
<xsl:apply-templates/>
</RECORDS>
</xsl:template>
<xsl:template match="ProductVariant">
<RECORD>
<xsl:element name="RECORD_ID">
<xsl:attribute name="ID">
<xsl:value-of select="ProductVariantId"/>
</xsl:attribute>
</xsl:element>
<!--??-->
</RECORD>
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
Спасибо за любую помощь заранее.