java将cdata添加到xml字符串

时间:2014-06-13 11:56:46

标签: java xml cdata

我需要将CDATA添加到xml字符串以便用证书进行签名。

字符串看起来像:

<SignedContent>someparametres</SignedContent>

结果必须如下:

<![CDATA[<SignedContent>someparametres</SignedContent>]]>

我该怎么做?请帮忙

P.S。 Xml字符串只有一行(删除所有选项卡,所有空格,BOM)

3 个答案:

答案 0 :(得分:8)

听起来你只是想要:

Node cdata = doc.createCDATASection(text);
parentElement.appendChild(cdata);

答案 1 :(得分:3)

此帖可能会暂停,但我觉得我应该回复,这可能对其他人有帮助。

        JAXBContext context = JAXBContext.newInstance(SignedContent.class);
        Marshaller marshallerObj = context.createMarshaller();
        marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        StringWriter sw = new StringWriter();
        marshallerObj.marshal(signedContentObj, sw);
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setValidating(true);
        factory.setExpandEntityReferences(false);
        Document doc = factory.newDocumentBuilder().newDocument();
        doc.createCDATASection(sw.toString()).getData();

你可以在这里玩耍......

答案 2 :(得分:-3)

使用Javas +运算符:

"<![CDATA[" + "<SignedContent>someparametres</SignedContent>" + "]]>"