首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dom4j:节点实现不兼容

Dom4j:节点实现不兼容
EN

Stack Overflow用户
提问于 2012-12-16 04:33:39
回答 1查看 488关注 0票数 0

Dom4j显然是一个很棒的项目,它自2005年以来就没有被触及过,但它仍然被广泛使用。

然而,Node实现的不兼容性给我带来了一些问题。org.dom4jorg.w3c.dom和其他名称之间存在冲突,例如org.dom4j.Nodeorg.w3c.dom.Node

例如,我有<li><p>Some content</p></li>,想从<p>提取任何东西到<li>,然后去掉<p>。所以我试着

代码语言:javascript
复制
    if( itemElm.getFirstChild().getNodeType() == Node.ELEMENT_NODE ){
        NodeList nodes = itemElm.getFirstChild().getChildNodes();
        //itemElm.removeChild( itemElm.getFirstChild() ); // No effect on error
        for( int i = 0; i < nodes.getLength(); i++ ) {
            itemElm.appendChild( nodes.item(i) );
        }
    }/**/

它将在我从C++、.Net甚至Java中知道的其他实现中工作。但与Dom4j不同的是:

代码语言:javascript
复制
// Cannot convert: org.dom4j.tree.DefaultText@275d595c [Text: "Some content."] into a W3C DOM Node

所以我试着

代码语言:javascript
复制
itemElm.add( DOMNodeHelper.asDOMNode( itemElm, nodes.item(i) ));

不-一样。所以我试着:

代码语言:javascript
复制
DOMNodeHelper.appendChild( itemElm, nodes.item(i) ); // TODO: Could improve Dom4j.

因为它是appendChild(org.dom4j.Node, org.w3c.dom.Node)。但结果不一样。

我该怎么解决这个问题?我应该如何在Dom4j中处理这两种类型的集合?,谢谢。

上下文:http://code.google.com/p/jtexy/source/browse/trunk/core/src/main/java/cz/dynawest/jtexy/modules/ListModule.java#380

EN

回答 1

Stack Overflow用户

发布于 2012-12-16 22:17:58

如果您要使用DOM,绝对没有理由使用DOM4J;可以使用最新的xerces或JRE提供的xerces。

可能有理由使用另一个API,如DOM4J,但是应该只使用“本机”API。我不相信DOM4J中的DOM adaptaion层会做任何严肃的工作;正如您所说的,它自2005年以来就没有被触及过。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13898631

复制
相关文章

相似问题

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