加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何使用Java标准DOM API解析DocumentFragment

发布时间:2020-12-15 02:27:17 所属栏目:Java 来源:网络整理
导读:这就是我如何用 Java解析格式良好的XML文档: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = factory.newDocumentBuilder();// text contains the XML contentDocument doc = builder.parse(new InputS
这就是我如何用 Java解析格式良好的XML文档:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

// text contains the XML content
Document doc = builder.parse(new InputSource(new StringReader(text)));

文本的一个例子是:

<a>
  <b/>
</a>

我如何解析DocumentFragment?例如,这个:

<a>
  <b/>
</a>
<a>
  <b/>
</a>

注意:如果可能,我想使用org.w3c.dom而不使用其他库/技术.

解决方法

我只是想到了一个愚蠢的解决方案.我可以将片段包装在这样的虚拟元素中:

<dummy><a>
  <b/>
</a>
<a>
  <b/>
</a></dummy>

然后以编程方式再次过滤掉该虚拟元素,如下所示:

String wrapped = "<dummy>" + text + "</dummy>";
Document parsed = builder.parse(new InputSource(new StringReader(wrapped)));
DocumentFragment fragment = parsed.createDocumentFragment();

// Here,the document element is the <dummy/> element.
NodeList children = parsed.getDocumentElement().getChildNodes();

// Move dummy's children over to the document fragment
while (children.getLength() > 0) {
    fragment.appendChild(children.item(0));
}

但这有点蹩脚,让我们看看是否还有其他解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读