我使用Transformer
类和transform方法修改XML文件。它正确地修改了我的参数,但是改变了XML样式(以不同方式写入XML属性):
原文:
<a struct="b"></a>
<c></c>
编辑后:
<a struct="b"/>
<c/>
我知道我可以设置属性:transformer.setOutputProperty(OutputKeys.KEY,value),
,但是找不到合适的设置。
任何人都可以帮助转换器不更改写入格式吗?
XMLReader xr = new XMLFilterImpl(XMLReaderFactory.createXMLReader()
Source src = new SAXSource(xr, new InputSource(new
StringReader(xmlArray[i])));
<<modify xml>>
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,"yes");
StringWriter buffer = new StringWriter();
transformer.transform(src, new StreamResult(buffer));
xmlArray[i] = buffer.toString();
答案 0 :(得分:4)
这些形式在语义上是等效的。没有符合条件的XML解析器会在乎,您也不应该。