当我们解析像这样的XML文档时
<entry>
Sometext
</entry>使用Javax.xml.Parsers.DocumentBuilder,我们总是可以通过以下方式获取文本节点
Document doc = ...
Node entry = doc.getFirstChild();
Node textNode = entry.item(0);但是,我想知道如何使用dom4j获取文本节点。看起来dom4j并没有把text当做一个文本节点。
发布于 2018-03-04 15:59:09
看dom4j.github.io ...it可能是类似的东西:
List<Node> list = document.selectNodes("//entry");
for (Iterator<Node> iter = list.iterator(); iter.hasNext();) {
Attribute attribute = (Attribute) iter.next();
String text = attribute.getValue();
}另一种方法是在DOM中只选择一个节点:
Node node = document.selectSingleNode("//entry");发布于 2018-03-05 21:07:14
考虑到这一点:
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 -> twohttps://stackoverflow.com/questions/49093217
复制相似问题