我编写了一些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
。