Java - 处理DOM解析XML的“getTextContent()”中的缩进

时间:2013-08-17 13:13:02

标签: java xml dom indentation

我编写了一些java代码,它使用DOM解析XML,以便在我的程序中加载数据。 使用Eclipse“format”函数格式化XML,我遇到了一个问题:文档元素中的前一个工作getTextContent()现在返回一个字符串,其中包含从Eclipse格式中添加的空格(或whatelse)。 我正在寻找一个给出的解决方案:

<myElement>一些文字

我的

</myElement>

当我从文档中代码选择元素<myElement>时,我希望getTextContent()的行为类似于:

myElement.getTextContent().equals("some text of mine");

虽然实际上失败了。

如果我太不具体,请告诉我, 感谢。

1 个答案:

答案 0 :(得分:2)

使用辅助函数打包XML文本内容。

public String getPackedContent(Element element) {
    if (element != null) {
        String text = element.getTextContent();
        if (text != null) {
            return text.trim().replaceAll("\\s+", " ");
        }
    }
    return "";
}

System.out.print(getPackedContent(myElement)); // "some text of mine"

String#replaceAll()使用正则表达式来搜索字符串以查找应该替换为作为第二个参数传递的替换字符串的匹配项。 \\s+表示包含新行的一个或多个(+)空格(\s)。第一个\会转义\中所需的实际\s