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

<myElement>一些文字

我的

</myElement>

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

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

而实际上却失败了。

如果我不太明确,请告诉我,
谢谢。

最佳答案

使用帮助函数来打包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

10-05 19:04