3

我正在尝试使用 java ( currentXSLT.transform(xmlFile, outputFile);) 应用转换,但我得到了转义文本。我需要从 XML 文本中转义的字符。

到目前为止,我已经尝试过:



    <?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" indent="no" omit-xml-declaration="yes"/>
      <xsl:strip-space elements="*"/>

      <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
      </xsl:template>

      <xsl:template match="text()">
        <xsl:copy>
            <xsl:value-of select="." disable-output-escaping="yes"/>
        </xsl:copy>
      </xsl:template>
    </xsl:stylesheet>



但这似乎不起作用。

有任何想法吗?

谢谢。

4

1 回答 1

0

最后,我不能用普通的 xslt 来做到这一点,我不得不使用 apache commons 来对文本进行转义。由于保留无效标志是业务要求,因此我必须找到一种解决方法:

StringWriter stringWriter = new StringWriter();
transformer.transform(xmlFile, new StreamResult(stringWriter));
String xmlOutput = stringWriter.getBuffer().toString();
xmlOutput = StringEscapeUtils.escapeXml(xmlOutput);

于 2012-10-26T14:38:36.400 回答