Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个XSLT片段能更简洁吗?_Xslt_Xpath_Xslt 1.0 - Fatal编程技术网

这个XSLT片段能更简洁吗?

这个XSLT片段能更简洁吗?,xslt,xpath,xslt-1.0,Xslt,Xpath,Xslt 1.0,在下面的代码片段中,我有3个用于每个的,但在我看来,它们应该能够组合成一个。它按原样工作,但我想知道是否有人知道一种更优雅的书写方式 <xsl:for-each select="/essentials/webservice"> <xsl:for-each select="document(@filename)/productSearchResponse/products/product"> <xsl:sort sele

在下面的代码片段中,我有3个用于每个的,但在我看来,它们应该能够组合成一个。它按原样工作,但我想知道是否有人知道一种更优雅的书写方式

    <xsl:for-each select="/essentials/webservice">
        <xsl:for-each select="document(@filename)/productSearchResponse/products/product">
            <xsl:sort select="producingRegion" order="ascending"/> 
            <xsl:for-each select="producingRegion[not(preceding::producingRegion=.)]">
                <xsl:value-of select="."/>
                <br/>
            </xsl:for-each> 
        </xsl:for-each>
    </xsl:for-each>



在不知道输入XML的预期结果和结构的情况下很难给出答案,但我相信这应该是可行的

<xsl:for-each select="/essentials/webservice">
    <xsl:for-each select="document(@filename)/productSearchResponse/products/product/producingRegion[not(preceding::producingRegion=.)]">
            <xsl:value-of select="."/>
            <br/>
    </xsl:for-each>
</xsl:for-each>

是的,我试过了。在我看来,它应该像您所做的那样简单,就像组合一样,但只有当我将它分解为单独的xml时,它才似乎起作用。我没有提供输入xml,因为我认为它在语法方面是显而易见的。如果这是一个问题,我可以制定一个简化的案件,并重新提交。是的,请这样做。根据哪些项目是重复结构,可能需要考虑一些因素。另外,请告诉我们预期的结果。谢谢@JLRishe-对我来说,将每个结果减少到两个就足够了。
<xsl:for-each select="/essentials/webservice">
    <xsl:for-each select="document(@filename)//producingRegion[not(preceding::producingRegion=.)]">
            <xsl:value-of select="."/>
            <br/>
    </xsl:for-each>
</xsl:for-each>