首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用dom4j获取文本节点

如何使用dom4j获取文本节点
EN

Stack Overflow用户
提问于 2018-03-04 15:53:23
回答 2查看 728关注 0票数 0

当我们解析像这样的XML文档时

代码语言:javascript
复制
<entry>
  Sometext
</entry>

使用Javax.xml.Parsers.DocumentBuilder,我们总是可以通过以下方式获取文本节点

代码语言:javascript
复制
Document doc = ...
Node entry = doc.getFirstChild();
Node textNode = entry.item(0);

但是,我想知道如何使用dom4j获取文本节点。看起来dom4j并没有把text当做一个文本节点。

EN

回答 2

Stack Overflow用户

发布于 2018-03-04 15:59:09

dom4j.github.io ...it可能是类似的东西:

代码语言:javascript
复制
List<Node> list = document.selectNodes("//entry");
for (Iterator<Node> iter = list.iterator(); iter.hasNext();) {
    Attribute attribute = (Attribute) iter.next();
    String text = attribute.getValue();
}

另一种方法是在DOM中只选择一个节点:

代码语言:javascript
复制
Node node = document.selectSingleNode("//entry");
票数 0
EN

Stack Overflow用户

发布于 2018-03-05 21:07:14

考虑到这一点:

代码语言:javascript
复制
    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调用

代码语言:javascript
复制
DefaultElement -> one
DefaultElement -> two

而其他的指纹

代码语言:javascript
复制
DefaultText -> one
DefaultText -> two
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49093217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档