如何解决XML 属性中的空格
<document>
<root>
<field1>
<a
Type="anyType">
<b>Text</b>
</a>
<field1>
</root>
</document>
我想删除 xml 属性 Type
和 xml 字段 a
中的空格
输出应该是这样的:
<document>
<root>
<field1>
<a Type="anyType">
<b>Text</b>
</a>
<field1>
</root>
</document>
如何在 Java 中执行此操作。
DOMSource domSource = new DOMSource(document);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource,result);
String fileData = format(writer.toString());
// remove CR(carriage return)
fileData = fileData.replaceAll("&#[a-zA-Z0-9]{2};","");
saveDocumentIntoFile(fileData,fileName);
方法格式()
public String format(String xml) {
try {
final InputSource src = new InputSource(new StringReader(xml));
final Node document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(src).getDocumentElement();
final Boolean keepDeclaration = Boolean.valueOf(xml.startsWith("<?xml"));
final DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
final DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS");
final LSSerializer writer = impl.createLSSerializer();
// Set this to true if the output needs to be beautified.
writer.getDomConfig().setParameter("format-pretty-print",Boolean.TRUE);
// Set this to true if the declaration is needed to be outputted.
writer.getDomConfig().setParameter("xml-declaration",keepDeclaration);
return writer.writetoString(document);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
方法 saveDocumentIntoFile()
protected void saveDocumentIntoFile(String fileData,String fileName) throws IOException {
FileWriter batchFile = new FileWriter(fileName);
batchFile.write(fileData);
batchFile.close();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。