2014-09-10 114 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指令遍歷節點。