Java TransformerHandler输出CDATA节

Java TransformerHandler输出CDATA节,java,cdata,Java,Cdata,我正在尝试使用下面的代码输出CDATA部分。虽然其他声明也得到了认可,但CDATA部分仍然是纯文本,没有附带标签(CDATA)。我做错了什么 private TransformerHandler getHandler(StringWriter sw) { SAXTransformerFactory stf = (SAXTransformerFactory)SAXTransformerFactory.newInstance(); TransformerHan

我正在尝试使用下面的代码输出CDATA部分。虽然其他声明也得到了认可,但CDATA部分仍然是纯文本,没有附带标签(CDATA)。我做错了什么

    private TransformerHandler getHandler(StringWriter sw) {
        SAXTransformerFactory stf = (SAXTransformerFactory)SAXTransformerFactory.newInstance();
        TransformerHandler th = null;
        th = stf.newTransformerHandler();

        th.getTransformer().setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "{ns1}elem");
        th.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
        th.getTransformer().setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
        th.setResult(new StreamResult(sw));
    }

尝试重新读取JavaDoc部分中的OutputKeys.CDATA\u部分\u元素:

。。。以及如何指定文字QName的参考说明

您指定的参数值“{ns1}elem”在我看来不像包含名称空间URI,而是像名称空间前缀(ns1)。找出“xmlns:ns1”声明是什么,并在文本QName中包含名称空间URI

示例(假设ns1前缀的名称空间声明类似于xmlns:ns1=”http://softee.org"你应该说明,


setOutputProperty(OutputKeys.CDATA\u节\u元素,“{http://softee.org}elem“;

尝试重新阅读JavaDoc部分中的OutputKeys.CDATA\u部分\u元素:

…以及如何指定文字QName的参考说明

您指定的参数值“{ns1}elem”在我看来不像包含命名空间URI,而是像命名空间前缀(ns1)。了解“xmlns:ns1”声明是什么,并在文本QName中包含命名空间URI

示例(假设ns1前缀的名称空间声明类似于xmlns:ns1=”http://softee.org"你应该说明,

setOutputProperty(OutputKeys.CDATA\u节\u元素,“{http://softee.org}元素)