我有以下xml:
<Candidate:candidateInfo>
<Candidate:name> AAA</Candidate:name>
<Candidate:age>16</Candidate:age>
<Candidate:sex>M</Candidate:sex>
</Candidate:candidateInfo>
<Candidate:candidateInfo>
<Candidate:name> BBB</Candidate:name>
<Candidate:age>28</Candidate:age>
<Candidate:sex>F</Candidate:sex>
</Candidate:candidateInfo>
<Candidate:candidateInfo>
<Candidate:name>CCC</Candidate:name>
<Candidate:age>28</Candidate:age>
<Candidate:sex>M</Candidate:sex>
</Candidate:candidateInfo>
我需要按照候选年龄的升序对节点进行排序。在3个排序值中,如果相应的年龄大于18,我必须填充中位数(第2个中的3个)元素中的所有信息。否则我必须填充元素3中的值。
答案 0 :(得分:0)
如果我正确理解了这个问题:
<xsl:template match="/">
<xsl:apply-templates select="Candidate:candidateInfo[number(Candidate:age) > 18]">
<xsl:sort-by select="number(Candidate:age)"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="Candidate:candidateInfo">
<xsl:copy-of select="."/>
</xsl:template>
此过滤器将删除19岁以下的所有candidateInfo元素。