2012-01-10 52 views
0

需要重新排序元素并同时填充默认输出。重新排列元素并同时填充默认输出

输入如下。

<?xml version='1.0' encoding='ISO-8859-1' ?> 
    <info> 
     <data> 
      <age> 33 </age> 
      <name>Student1 </name> 
     </data> 
     <data> 
      <age> 44 </age> 
      <name>Student2 </name> 
     </data> 
    </info> 

预期输出如下所示。

NAME|HEIGHT|AGE|SALARY|COUNTRY 
Student1||33||USA 
Student2||44||USA 

HEIGHT和SALARY,COUNTRY不是输入xml的一部分。 对于HEIGHT和SALARY,outpt应该是空字符串“”。 元素之间应该是“|”分离。 每行之间应该换行。

COUNTRY的默认值是USA。

回答

0

这种转变

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="/*"> 
    <xsl:text>NAME|HEIGHT|AGE|SALARY|COUNTRY</xsl:text> 

    <xsl:apply-templates/> 
</xsl:template> 

<xsl:template match="data"> 
    <xsl:value-of select= 
    "concat('&#xA;', normalize-space(name), 
      '||', normalize-space(age),'||USA')"/> 
</xsl:template> 
</xsl:stylesheet> 

时所提供的XML文档应用:

<info> 
    <data> 
     <age> 33 </age> 
     <name>Student1 </name> 
    </data> 
    <data> 
     <age> 44 </age> 
     <name>Student2 </name> 
    </data> 
</info> 

产生想要的,正确的结果

NAME|HEIGHT|AGE|SALARY|COUNTRY 
Student1||33||USA 
Student2||44||USA