Xml 每种类型的XSL都带有sort
我已经有一段时间没有处理XPath/XSL了,我似乎无法让“sort”处理循环。对于下面的示例XML,我想做的是基于'TextValue'属性的值进行排序,其中'ExternalName'是'isDefault'。因此,对于示例XML和第一次排序尝试,我希望按照“Blah2”和“Blah1”的顺序进行迭代。我尝试了许多变体,甚至尝试了仅根据元素值进行排序,但似乎无法实现任何排序。任何帮助都将不胜感激 XML:Xml 每种类型的XSL都带有sort,xml,xslt,Xml,Xslt,我已经有一段时间没有处理XPath/XSL了,我似乎无法让“sort”处理循环。对于下面的示例XML,我想做的是基于'TextValue'属性的值进行排序,其中'ExternalName'是'isDefault'。因此,对于示例XML和第一次排序尝试,我希望按照“Blah2”和“Blah1”的顺序进行迭代。我尝试了许多变体,甚至尝试了仅根据元素值进行排序,但似乎无法实现任何排序。任何帮助都将不胜感激 XML: 1. 胡说八道 衣服 2. 废话 衣服 排序尝试: <xsl:sort se
1.
胡说八道
衣服
2.
废话
衣服
排序尝试:
<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"/>
您的XPath正在尝试作为属性
@ProductCode
访问ProductCode
。。。这是一个元素
<xsl:template match="/">
<ProductsExport>
<xsl:for-each select="ProductsExport/ProductExport">
<xsl:sort select="./Attributes/Attribute[@ExternalName = 'isDefault']/@TextValue"
order="descending"/>
<xsl:sort select="./ProductCode"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</ProductsExport>
</xsl:template>
。。。示例输入
<ProductsExport>
<ProductExport>
<ProductCode>BlahD</ProductCode>
<Attributes>
<Attribute TextValue="Yes" ExternalName="isDefault" LocaleID="Default"/>
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahC</ProductCode>
<Attributes>
<Attribute TextValue="No" ExternalName="isDefault" LocaleID="Default"/>
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahB</ProductCode>
<Attributes>
<Attribute TextValue="Yes" ExternalName="isDefault" LocaleID="Default"/>
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahA</ProductCode>
<Attributes>
<Attribute TextValue="No" ExternalName="isDefault" LocaleID="Default"/>
</Attributes>
</ProductExport>
</ProductsExport>
乏味的
布拉克
布拉赫
布拉哈
。。。示例输出
<ProductsExport>
<ProductExport>
<ProductCode>BlahB</ProductCode>
<Attributes>
<Attribute TextValue="Yes" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahD</ProductCode>
<Attributes>
<Attribute TextValue="Yes" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahA</ProductCode>
<Attributes>
<Attribute TextValue="No" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahC</ProductCode>
<Attributes>
<Attribute TextValue="No" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
</ProductsExport>
布拉赫
乏味的
布拉哈
布拉克
模板的其余部分在哪里?我很抱歉延迟接受。我被牵扯到其他事情上了。所以看起来我尝试的排序是正确的,但是完整XSL中的某些东西导致它意外地运行,我们将在接下来的几天中看到这一点。感谢您提供输入/输出示例的完整答案。
<ProductsExport>
<ProductExport>
<ProductCode>BlahB</ProductCode>
<Attributes>
<Attribute TextValue="Yes" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahD</ProductCode>
<Attributes>
<Attribute TextValue="Yes" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahA</ProductCode>
<Attributes>
<Attribute TextValue="No" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
<ProductExport>
<ProductCode>BlahC</ProductCode>
<Attributes>
<Attribute TextValue="No" ExternalName="isDefault" LocaleID="Default" />
</Attributes>
</ProductExport>
</ProductsExport>