java adding cdata to xml string

风流意气都作罢 提交于 2020-01-02 08:02:34

问题


I need to add CDATA to xml string for sign it with certificate.

String looks like:

<SignedContent>someparametres</SignedContent>

Result must be like:

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

How can i do this? Pls help

P.S. Xml string has only one row (removed all tabs, all spaces, BOM)


回答1:


It sounds like you just want:

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



回答2:


This post may be hold but i feel i should respond, this may help someone else.

        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();

You can play around from here...




回答3:


Use Javas + operator:

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


来源:https://stackoverflow.com/questions/24204749/java-adding-cdata-to-xml-string

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!