Przeszukałem cały dział, ale niestety nie znalazłem sposobu na swój problem.
Mam 2 pliki xml. Przetwarzam pierwszy przy pomocy xslt, przy tym w jednym miejscu pobieram z drugiego wartość jednego znacznika.
Na (uproszczonym) przykładzie:
1.xml
<Products> <Product> <ProductId>C0010036</ProductId> <PartNumber>005940</PartNumber> <ProductName><![CDATA[TF1 bateria do tel. Sony-Ericsson K750i/D750i 850mAh Li-Pol V800/K600i/K608i]]></ProductName> <ProductDescription><![CDATA[]]></ProductDescription> <MajorGroup>TF1</MajorGroup> <MinorGroup>ACG</MinorGroup> <ProducerId>TELFORCE1</ProducerId> <Price>16.3800</Price> <PriceVat>19.9836</PriceVat> <CurrencyId>PLN</CurrencyId> <Available>0</Available> </Product> <Product> [...] </Product> </Products>
2.xml
<HierarchyElement> <HID>11311</HID> <Name>Notebooki / Laptopy</Name> <SortId>1</SortId> <ParentHID>11272</ParentHID> <ParentName>Komputery </ParentName> <ParentSortId>0</ParentSortId> <ShowLink>1</ShowLink> <MinorGroup>PCN</MinorGroup> </HierarchyElement> <HierarchyElement> [...] </HierarchyElement>
mam plik xslt:
1.xslt
<xsl:template match="/doc:PriceListProducts"> <xsl:for-each select="doc:Products/doc:Product"> <xsl:variable name="my_cat"><xsl:value-of select="doc:MinorGroup"/></xsl:variable> <item> <vendor><xsl:value-of select="doc:ProducerId"/></vendor> <compid><xsl:value-of select="doc:ProductId"/></compid> <desc><xsl:value-of select="doc:ProductName"/></desc> <price><xsl:value-of select="doc:PriceVat"/></price> <catid><xsl:value-of select="PriceList/HierarchyElement[MinorGroup=$my_cat]/Name"/></catid> </item> </xsl:for-each> </xsl:template>
I teraz pointa:
Problem tkwi w pobraniu nazwy kategorii z drugiego pliku xml.
Do zmiennej my_cat przypisuje kod MinorGroup dla aktualnego węzła, i teraz jak pobrać odpowiadającą mu nazwę z drugiego pliku xml?
Proszę o pomoc