java - 从 String 中删除空格,然后转换为 XML

标签 java xml string whitespace

我想从字符串中删除空格,然后将其转换为 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/

相关文章:

具有非平凡子类树的 Java 构建器模式

java - 如何实现应用程序故障转移?

java - Flink session 窗口的延迟输出缺失

c++ - XML 文件格式中的 bool 值应该写成 true/false 还是 1/0?

ruby-on-rails - Ruby 和编码转换

java - Java 中的重载和多重调度

jquery - 如何使用 Ajax/jQuery 通过服务器进程的 XML 输出更新表?

javascript - 无法使用 javascript 和 jquery 获取 XML 属性值

Java - 小写引号外的字符串

使用三元条件运算符对系列进行 Python 字符串串联