2015-06-23 22 views
0

我剛剛演示了我的問題,如下所示的輸入和輸出格式。 我有一個輸入作爲XML文檔,其由以下數據XML-XSLT-XPATH:如何將多個XML元素轉換爲以分號分隔的字符串

<Users> 
      <user> 
      <name>Mark Curtain</name> 
      <email>[email protected]</email> 
      <username>mark</username> 
      </user> 
      <user> 
      <name>Zuke Gossip</name> 
      <email>[email protected]</email> 
      <username>zuke</username> 
      </user> 
      <user> 
      <name>Villan Kiosk</name> 
      <email>[email protected]</email> 
      <username>kvk</username> 
     </user> 
    </Users> 

我想在一個字符串,它應當由分號分隔抓取的用戶名和名稱的(;)。

例如:用戶名: 「標誌;醃; KVK」

的名稱類似的方式也名稱: 「馬克窗簾;祖科緋聞; Villan的亭」

有什麼Xpath函數實現相同嗎? 是否有任何方式在XSL轉換中獲得上面的字符串作爲輸出?

+1

顯示你嘗試過什麼? – Pawel

+0

噢,是的,這可以使用XSL轉換。你只需迭代每個'Users/user/username'獲得第一個字符串,然後在'name'獲得第二個(在除最後一個元素之外的每個元素之後連接';')。 –

+0

是的,你是對的@LingamurthyCS。 但是,如果它是由XPath或XSLT或XPath的其他函數完成的將不勝感激。 –

回答

1

你可以使用類似:

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

    <xsl:output method="text"/> 

    <xsl:template match="/"> 
     <xsl:text>UserNames: &quot;</xsl:text> 
     <xsl:value-of select="/Users/user/username" separator=";"/> 
     <xsl:text>&quot;&#xA;</xsl:text> 
     <xsl:text>Names: &quot;</xsl:text> 
     <xsl:value-of select="/Users/user/name" separator=";"/> 
     <xsl:text>&quot;</xsl:text> 
    </xsl:template> 

</xsl:stylesheet> 
+0

謝謝@Joel M. Lamsen 而不是更好地迭代每個元素直接使用xpath進行選擇。 屬性「分隔符」我沒有意識到這一點,因爲我是Xpath和XSLT中的新手。 謝謝大家對我的問題感興趣。 –

相關問題