2014-09-10 78 views
0

我需要创造一种可以管理两个differnts形式如同下列的一个XSLT:XSL循环对节点

<form> 
<requestor>rqu </requestor> 
<pp1>pepe1<pp2> 

</form> 

<form> 
<requestor>rqu </requestor> 
<pp1>pepe1<pp1> 
    <pp2>pepe2<pp2> 
</form> 

的想法是所有节点和输出信息之间循环如下:

为第一示例

请求者 - > rqu

PP1 - > pepe1

第二个例子

请求 - > rqu

PP1 - > pepe1

PP2 - >佩佩2

是一个简单的问题,但我不知道如何获取节点名称和循环节点,我正在寻找,我没有得到任何相关...

+0

这不是有效的XML的子元素。特别地,这部分:' pepe1 '和这部分:' pepe1 pepe2 '。你试过什么了? – JLRishe 2014-09-10 12:28:39

回答

0

假设如图所示一个非常简单的XML结构,你可以写这样的事情简单地遍历所有的form元素

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

    <xsl:template match="form"> 
     <xsl:for-each select="*"> 
      <xsl:value-of select="local-name()" /> 
      <xsl:text> -> </xsl:text> 
      <xsl:value-of select="." /> 
      <xsl:text>&#10;</xsl:text> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 
+0

这是工作,最后是一个xmlEditor(xmlSpy)的问题,我不知道为什么,但我尝试了它的在线应用程序和它的工作正常。请推荐任何免费的应用程序? – 2014-09-10 13:09:02

0

是一个简单的问题,但我不知道如何获取节点名称和 环路节点,我在寻找,我没有得到任何有关...

使用无论是name()local-name()函数来获取节点名称。
使用xsl:for-eachxsl:apply-templates指令遍历节点。