2012-01-10 68 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