XSL循环对节点

时间:2014-09-10 12:25:10

标签: xml xslt nodes

我需要创建一个可以管理两个不同形式的XSLT,如下所示:

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

</form>

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

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

第一个例子

请求者 - &gt; rqu

pp1 - &gt; pepe1

第二个例子

请求者 - &gt; rqu

pp1 - &gt; pepe1

pp2 - &gt; pepe 2

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

2 个答案:

答案 0 :(得分:0)

  

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

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

答案 1 :(得分: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>