java - 如何使用 jdom 将 CDATA 应用于变压器参数

标签 java xml cdata jdom

出于某种原因,我尝试包围参数 sExtraParameter , sExtraParameter2 , sExtraParameter3<![CDATA[ ]]>字符串以获得“ pretty-print ”的拉丁字符。但每次我检查 xml 输出时,它仍然显示错误的解析字符。

那么,是否有其他方法将 CDATA 应用于此参数?

public static Element xslTransformJDOM(File xmlFile, String xslStyleSheet, String sExtraParameter, String sExtraParameterValue, String sExtraParameter2, String sExtraParameterValue2, String sExtraParameter3,String sExtraParameterValue3 ) throws JDOMException, TransformerConfigurationException, FileNotFoundException, IOException{

    try{

        Transformer transformer = TransformerFactory.newInstance().newTransformer(new   StreamSource(xslStyleSheet));
        transformer.setParameter(sExtraParameter, sExtraParameterValue);
        transformer.setParameter(sExtraParameter2, sExtraParameterValue2);
        transformer.setParameter(sExtraParameter3, sExtraParameterValue3);

        JDOMResult out = new JDOMResult();

        transformer.transform(new StreamSource(xmlFile), out);

        Element result = out.getDocument().detachRootElement();

        setSize(new XMLOutputter().outputString(result).length());

        return result;

    }
    catch (TransformerException e){
        throw new JDOMException("XSLT Transformation failed", e);
    }
}

编辑:

我正在跟进我老板的一个项目,因此我没有完整的代码可以在这里向您展示。

最佳答案

也许我错过了这个问题,但是 setParameter 的 API ( http://docs.oracle.com/javaee/1.4/api/javax/xml/transform/Transformer.html#setParameter(java.lang.String, java.lang.Object) ) 并不期望

value - The value object. This can be any valid Java object. It is up to the processor to provide the proper object coersion or to simply pass the object on for use in an extension.

  1. 假设您使用的是 JDOM,这可能会因实现而异。
  2. 可能存在一个可以正确处理的 CDATA xml 元素。也许:http://www.jdom.org/docs/apidocs/org/jdom2/CDATA.html
  3. 您仍然可以考虑将序列化器设置设置为某种空白保留。 http://www.jdom.org/docs/apidocs.1.1/org/jdom/output/Format.TextMode.html

关于java - 如何使用 jdom 将 CDATA 应用于变压器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669956/

相关文章:

java - 如何在java中使用Xmlreader读取XML?

java - 如何实现这个功能呢?

Java客户端/服务器Socket程序-服务器不响应客户端请求

java - 我们可以将 CDATA 嵌入到 xml 中的名称值对的纯字符串中吗?

javascript - 使用 javascript 访问 CDATA 中的特定元素

xml - 为 boto3 MTurk 构建 HTMLQuestion XML

java - android:layout_alignParentBottom ="true"未按预期运行。

java - 如何在JAVA中向XML字符串添加新属性?条件 : based on parent Key and I can use only JAVA internal api if we need to do parse or SAX

python - 在Python中使用lxml解析ODF

xml - Perl utf8 binmode 意外结果