2012-10-15 50 views
1

我有一個將一種XML格式轉換爲另一種格式的XSL。在輸入XML中,我有一個具有以下值的節點 - 如果我們替換& lt;實際上它是一個XML字符串;對於例如<(小於)。XSLT:如何獲取XML

<otherInfo>&amp;lt;Paragraph&amp;gt;&amp;lt;Title&amp;gt;&amp;lt;!CDATA[Pour les nuits du 2012-10-01 - 2012-10-30]]&amp;gt;&amp;lt;/Title&amp;gt;&amp;lt;Text&amp;gt;&amp;lt;![CDATA[TAXES INCLUSES.]]&amp;gt;&amp;lt;/Text&amp;gt;&amp;lt;/Paragraph&amp;gt;</otherInfo> 

我想將otherInfo的內容作爲輸出XML中的XML節點。

如果我做xsl:valueof select =「otherInfo」,我沒有把它作爲一個XML節點 - 它就像文本一樣輸出。如何讓XSL將otherInfo的內容作爲XML節點輸出?

回答

1

您可能需要實現用XSLT編寫的XML解析器,調用擴展函數或等待可能存在標準parse-xml()函數的XSLT 3.0。

+0

是的,你是對的。我也從http://stackoverflow.com/a/6679638/518914 –

+0

@JyotsnaSonawane得到線索,不客氣。 –

0

如果我理解你正確地質疑......

你可以嘗試這樣的事情(未測試的代碼)

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common" version="1.0"> 

<xsl:template match="*"> 
    <xsl:variable name="xml-string"> 
    <Paragraph> 
     <Title> 
      <!CDATA[Pour les nuits du 2012-10-01 - 2012-10-30]]> 
     </Title> 
     <Text> 
      <![CDATA[TAXES INCLUSES.]]> 
     </Text> 
    </Paragraph> 
</xsl:variable> 

    <xsl:variable name="xmlnode" select="exslt:node-set($xml-string)"/> 

    Title is <xsl:value-of select="$xmlnode//Title"/> 
</xsl:template>