假设我有一些像这样的数据,其中一些节点有一个名为" idNumber"有些人有一个名为" serialNumber":
<data>
<product>
<name> Chair </name>
<idNumber> 12 </idNumber>
</product>
<product>
<name> Table </name>
<idNumber> 16 </idNumber>
</product>
<product>
<name> Lamp </name>
<serialNumber> 13 </serialNumber>
</product>
<product>
<name> Fan </name>
<idNumber> 10 </idNumber>
</product>
<product>
<name> Desk </name>
<serialNumber> 15 </serialNumber>
</product>
</data>
我需要按照它们的编号对它们进行排序,无论是idNumber还是serialNumber;结果将是:
粉丝 - 10
主席 - 12
Lamp -13
Desk -15
表 - 16
我尝试使用:
<xsl:sort select="idNumber"/>
<xsl:sort select="serialNumber"/>
然而,这并不是我想要的,因为它尝试按第一种方式排序,即使它没有该元素。我需要一种方法来排序,考虑到两者并选择正确的方法并正确地命令它们。这甚至可能吗?
答案 0 :(得分:0)
使用此:
<xsl:sort select="idNumber | serialNumber"/>
答案 1 :(得分:0)
您可以使用以下xsl:sort
指令:
<xsl:sort select="concat(normalize-space(idNumber),normalize-space(serialNumber))" data-type="number"/>