2013-11-27 101 views
-1

我有一個下面的XML結構,標題標籤是父標籤,而微標籤是子標籤,在輸出我想要的價值第一微標籤即' K',然後標題標籤的第一個文本值,即','再次是第二個微標籤的值,即E,然後是標題標籤的第二個文本值,即',和'等等。
我正在使用這個輸入xml文件。如何獲得替代值的子標籤,然後通過父母標籤xslt

<Head> 
<Title> 
<Micro>K</Micro>, <Micro> 
<Ind>L</Ind> 
<Ind>X</Ind>E</Micro>, and <Micro>S</Micro> I</Title> 
<Title> 
<Micro>M</Micro> 
<Ind>W</Ind> 
<Ind>G</Ind> O</Title><Head> 

輸出應該是:

<Heading topic="K,E, and S I"/> 
    <Heading topic="M O"/> 
+0

你有什麼試過?另外,您的輸入XML不是XML。您是否可以包含您嘗試使用的XSLT,並描述它如何不正確執行? – 2013-11-27 05:45:03

+0

我已經使用這個代碼:的 \t \t \t的 \t \t \t \t \t \t的 \t \t \t \t的 \t \t \t \t \t的 \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t。 – Ankit

+1

請包括_entire_ stylesheet(或者,如果它太長,選擇相關模板)並將其編輯到原始文章中,請勿在註釋中張貼代碼。 –

回答

0

我相信這應該爲你工作:

<?xml version="1.0" encoding="utf-8"?> 
<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="/"> 
<xsl:for-each select="Head/Title"> 
    <Heading> 
     <xsl:attribute name="topic"> 
      <xsl:for-each select="Micro/text() | text()"> 
       <xsl:value-of select="translate(., '&#10;', '')"/> 
      </xsl:for-each> 
     </xsl:attribute> 
    </Heading> 
</xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 

注:標題中
你的源XML真的不應該包含換行符元素,當元素包含有意義的文本節點時。

此外,我不得不修復結束頭標籤。

+0

謝謝,它適用於我, – Ankit