当我们解析像
这样的XML文档时<entry>
Sometext
</entry>
使用Javax.xml.Parsers.DocumentBuilder,我们总是可以通过
获取文本节点Document doc = ...
Node entry = doc.getFirstChild();
Node textNode = entry.item(0);
但是,我想知道如何使用dom4j获取文本节点。似乎dom4j不会将text
视为文本节点。
答案 0 :(得分:0)
请参阅dom4j.github.io ......它可能类似:
if (element > 2) {
// ...do the ajax stuff here
} else {
// the input length was shorter than 2 characters...
// remove all HTML elements here
$('div#to_be_removed').remove(); //or something like that
}
或者,只选择DOM中的单个节点:
List<Node> list = document.selectNodes("//entry");
for (Iterator<Node> iter = list.iterator(); iter.hasNext();) {
Attribute attribute = (Attribute) iter.next();
String text = attribute.getValue();
}
答案 1 :(得分:0)
鉴于此:
String xml = "<root><entry>one</entry><entry>two</entry></root>";
Document doc = DocumentHelper.parseText(xml);
doc.selectNodes("//entry")
.forEach(n -> System.out.printf("%s -> %s\n", n.getClass().getSimpleName(), n.getStringValue()));
doc.selectNodes("//entry/text()")
.forEach(n -> System.out.printf("%s -> %s\n", n.getClass().getSimpleName(), n.getStringValue()));
第一次selectNodes
来电打印
DefaultElement -> one
DefaultElement -> two
而其他打印
DefaultText -> one
DefaultText -> two