我需要将CDATA添加到xml字符串以便用证书进行签名。
字符串看起来像:
<SignedContent>someparametres</SignedContent>
结果必须如下:
<![CDATA[<SignedContent>someparametres</SignedContent>]]>
我该怎么做?请帮忙
P.S。 Xml字符串只有一行(删除所有选项卡,所有空格,BOM)
答案 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>" + "]]>"