2017-02-27 283 views
-2

在我的源代碼一些實體遇到手柄的entites

源XML

<name>&#145; &amp;#145; &amp;</name> 

預計輸出

<name>&#145; &#145; &amp;</name> 

我試着用字符映射,但它是不按預期轉換。

謝謝

回答

2

**創建一個模板來處理所有節點作爲文字和記號化與價值取代它**

<xsl:template match="text()"> 
    <xsl:for-each select="tokenize(., ' ')"> 
     <xsl:choose> 
      <xsl:when test="matches(., '&amp;#')"> 
       <xsl:value-of select="replace(., '&amp;#([0-9]+);', concat('&#38;', '#$1;'))" disable-output-escaping="yes"/> 
       <xsl:text> </xsl:text> 
      </xsl:when> 
      <xsl:otherwise> 
       <xsl:value-of select="."/> 
       <xsl:text> </xsl:text> 
      </xsl:otherwise> 
     </xsl:choose> 
    </xsl:for-each> 
</xsl:template> 
+0

謝謝,但它自己的轉化的衝擊速度,因爲我有非常大的文件,但它會起作用。 – Rupesh