如何防止XML中的自封闭<tags />?

时间:2019-07-29 14:11:05

标签: java xml intellij-idea

我使用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();

1 个答案:

答案 0 :(得分:4)

这些形式在语义上是等效的。没有符合条件的XML解析器会在乎,您也不应该。