我可以使用转义文本而不是CDATA部分打印XML文档吗?例如,我希望输出字符串为<sender>John Smith</sender>
而不是<![CDATA[<sender>John Smith</sender>]]>
。更新:我知道XML文档可以用两种方式表示,没有任何语义差异,但我想在屏幕上打印输出字符串。
这是我的代码:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "5");
StringWriter streamWriter = new StringWriter();
StreamResult streamResult = new StreamResult(streamWriter);
DOMSource source = new DOMSource(xml);
transformer.transform(source, streamResult);
return streamWriter.toString();
这是输出:
<?xml version="1.0" encoding="UTF-8"?>
<VNET>
<ID>1</ID>
<UID>0</UID>
<NAME>ranged</NAME>
<TYPE>0</TYPE>
<BRIDGE>virbr0</BRIDGE>
<PUBLIC>1</PUBLIC>
<TEMPLATE>
<BRIDGE><![CDATA[virbr0]]></BRIDGE>
<NAME><![CDATA[ranged]]></NAME>
<NETWORK_ADDRESS><![CDATA[192.168.0.0]]></NETWORK_ADDRESS>
<NETWORK_SIZE><![CDATA[c]]></NETWORK_SIZE>
<TYPE><![CDATA[ranged]]></TYPE>
</TEMPLATE>
<LEASES/>
</VNET>
非常感谢。
答案 0 :(得分:0)
两种XML(CDATA
和>
等)都是等效的。 XML解析器将以相同的方式读取字符数据并生成相同的字符串。所以使用哪个并不重要;只要保留它,XML生成器就可以了。