我想从字符串中删除空格,然后将其转换为 XML。这是我的字符串:
<XMLDoc>
<Envelope>
<Header>
<header>
<msg-id>000C2990-2FBD-11E5-E6CF-FB0900F491A5</msg-id>
</header>
</Header>
<Body>
<GetWorkItemsResponse>
<cursor
numRows="0"
sameConnection="false"
/>
<tuple
>
<old>
<TaskInfo>
...
我可以使用 str.replaceall("\\s+","")
删除空格。但是在从字符串转换为 XML 时,它显示错误,因为它删除了元素和属性之间的空格。它给出的结果是 <cursornumRows="0" sameConnection="false"/>
当实际元素为 <cursor numRows="0" sameConnection="false"/>
时。元素之间的空间cursor
和属性 numRows
已删除。
有人可以帮助我吗?
最佳答案
在将其转换为 XML 之前,您不需要删除空格。简单
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xmlString)));
会起作用的。当您将 XML 文档转换回字符串时,空格将消失(默认情况下 - 还有一些用于 pretty-print 的选项):
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
String outputString = writer.getBuffer().toString();
关于java - 从 String 中删除空格,然后转换为 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31727402/