0

我有以下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,我必须从中值(3 个中的第 2 个)元素填充所有信息。否则我有填充元素 3 中的值。

4

1 回答 1

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 岁以下的所有候选信息元素。

于 2012-12-07T08:07:39.120 回答