ちょっと、XMLファイルで問題が発生しました。 私はここでいくつかの助けを受けましたが、その後私は別の問題に来ました。 XMLファイルの最初の要素を選択して別の位置にコピーしようとしました。xslでXMLから要素を1つ選択するにはどうすればよいですか?
これはオリジナルである:私は一部/*/product/OrderingInformation/item[1]
で項目を選択しようとしている
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:template>
<xsl:template match="OrderingInfo">
<xsl:copy-of select="."/>
<varitems></varitems>
</xsl:template>
<xsl:template match="varitems">
<xsl:copy>
<xsl:for-each select="ancestor::product/OrderingInfo/item">
<item>
<varno><xsl:value-of select="/*/product/OrderingInfo/item[1]"/></partno>
<vartitle><xsl:value-of select="normalize-space(translate(substring-after(current(),' '),'()',''))"/></vartitle>
</item>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
でそれをtrieb
<products>
<product>
<OrderingInfo>
<item name="Part No.">12345 (text)</item>
<item name="Part No.">12345IP (text)</item>
</OrderingInfo>
<varitems>
<item>
<varno>14205</varno>
<text>text</text>
</item>
<item>
<varno>14205</varno>
<text>text</text>
</item>
</varitems>
</product>
<product>
<OrderingInfo>
<item name="Part No.">001</item>
<item name="Part No.">002</item>
</OrderingInfo>
<varitems>
<item>
<varno>001</varno>
<text>text</text>
</item>
<item>
<varno>001</varno>
<text>text</text>
</item>
</varitems>
</product>
</products>
しかし:
<products>
<product>
<OrderingInfo>
<item name="Part No.">12345 (text)</item>
<item name="Part No.">12345IP (text)</item>
</OrderingInfo>
<varitems>
</varitems>
</product>
<product>
<OrderingInfo>
<item name="Part No.">001 (text)</item>
<item name="Part No.">002 (text)</item>
</OrderingInfo>
<varitems>
</varitems>
</product>
</products>
所望の出力常にOrderingInfoの最初の行を選択し、fiから最初の商品
"14205"は出力のどこにありますか?それは実際には "12345"でしょうか? –
ああ、すみません、それはすべきです12345 – NeunNatter