我希望 XSL 仅将每个 PRODUCT/PRODUCT_IMAGES 节点中第一个 ITEM 节点的第一个 PRODUCT_IMAGE_FILE 节点输出到您可以在记事本中找到的简单列表中。我一直在努力让它发挥作用,但这很困难。
这是我需要看到的,最终结果:
hello/this_d_one1.jpg
hello/this_d_one33.jpg
XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<products>
<product>
<Person>Jim</Person>
<Product_Images>
<item>
<Product_Image_File>hello/this_d_one1.jpg</Product_Image_File>
</item>
<item>
<Product_Image_File>hello/testNOTHISONE.jpg</Product_Image_File>
</item>
</Product_Images>
</product>
<product>
<Person>Nancy</Person>
<Product_Images>
<item>
<Product_Image_File>hello/this_d_one33.jpg</Product_Image_File>
</item>
<item>
<Product_Image_File>hello/testNOTHISONE3.jpg</Product_Image_File>
</item>
</Product_Images>
</product>
</products>
这是我的 test.XSL:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="products">
<xsl:call-template name="header" />
<xsl:apply-templates select="product" />
</xsl:template>
<xsl:template name="header">
<xsl:for-each select="//product[1]/product_images/item/child::*" >
<xsl:value-of select="name()" />
<xsl:if test="following-sibling::*">|</xsl:if>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="product/product_images/item">
<xsl:for-each select="child::*" >
<xsl:value-of select="." />
<xsl:if test="following-sibling::*">|</xsl:if>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>