自从我处理XPath/XSL以来,我已经有一段时间了,我似乎无法使用“sort”来处理循环。通过下面的示例XML,我想要做的是基于'ExternalName'为'isDefault'的'TextValue'属性的值进行排序。所以对于示例XML和第一次排序尝试,我期望按照'Blah2'和'Blah1'的顺序进行迭代。我已经尝试了很多变体,甚至尝试对元素值进行排序,但似乎无法完成任何工作。任何帮助,将不胜感激。XSL for-each with sort
XML:
<ProductsExport>
<ProductExport>
<ProductId>1</ProductId>
<ProductCode>Blah1</ProductCode>
<ProductType>Apparel</ProductType>
<Attributes>
<Attribute TextValue="Yes" ExternalName="Something" LocaleID="Default"/>
<Attribute TextValue="No" ExternalName="isDefault" LocaleID="Default"/>
</Attributes>
</ProductExport>
<ProductExport>
<ProductId>2</ProductId>
<ProductCode>Blah2</ProductCode>
<ProductType>Apparel</ProductType>
<Attributes>
<Attribute TextValue="Yes" ExternalName="Something" LocaleID="Default"/>
<Attribute TextValue="Yes" ExternalName="isDefault" LocaleID="Default"/>
</Attributes>
</ProductExport>
</ProductsExport>
排序尝试:
<xsl:sort select="./Attributes/Attribute[@ExternalName = 'isDefault']/@TextValue" order="descending"/>
<xsl:sort select="/ProductsExport/ProductExport/@ProductCode"/>
<xsl:sort select="@ProductCode"/>
<xsl:sort select="./ProductsExport/ProductExport/@ProductCode"/>
哪里是你的模板的休息吗? –