2015-07-20 87 views
0

如何想象下面的XML如何遍历XSL中的每个节点?

<Root> 
<name1> 
    <node1> some text </node1> 
    <node2> <node22/> <node23/> </node2> 
</name1> 
<name2> 
    <node1> some text </node1> 
    <node2> <node22/> <node23/> </node2> 
</name2> 
</Root> 

这些节点1,node12,node13,根节点已知的名称,但1,名称,等都是事先未知。

所需的输出应为一组两个表每个,一个用于节点1和其它的用于节点2

我的问题是,我不能遍历nameX因为我不知道节点的确切名称。在上面的示例中,我使用了nameX,但它可以是任何有效的名称。

+2

你可以添加你的例子的预期输出? – Filburt

回答

1

对于每个名称,所需的输出应该是一组两个表格,其中一个为 ,另一个为node1,其他为node2。

试试这样说:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:template match="/Root"> 
    <xsl:copy> 
     <xsl:for-each select="*"> 
      <table> 
       <!-- build your table here --> 
      </table> 
     </xsl:for-each> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 
+0

如何获得来自Astrix的名称?我需要它来创建表的名称。 – ivand58

+0

使用'name()'或'local-name()'函数获取当前节点的名称。 - 如果你想要一个完整的答案,你应该发布一个完整的问题。 –