使用org.w3c.dom.Element的setTextContent()、getTextContent()方法时出现编译错误

今天在更新项目后进行编译时,出现如下错误一堆:

Google之,在stackoverflow上看到如下的解决方法:

I came here with the same problem. Even worse: I had two projects side by side, both targetting the same JRE (1.6), and one was able to resolve Node.getTextContent() while the other wasn’t. I resolved it sort of by accident; I went to project properties | Java Build Path | Order and Export tab, selected the JRE (which was at the bottom of the list) and clicked the “Top” button to move it to the top. My problem went away. It appears that the Node I wanted was hidden by another one. :-\ Maybe this will help with your problem.

大体解决方法就是:

在项目的Java Build Path | Order and Export选项卡中,将JRE System Library选中,并Top置顶。然后再进行编译即可。如图:

但是上面并没有给出原因。



其实顺着问题的解决思路想想,肯定是jar出现了冲突所致。于是我就在项目的jar包中找可能含有org.w3c.dom.Element这个类的jar包。既然将JRE的lib进行了置顶,那么就有理由猜测JRE-lib里存在这个类的相关方法。

最终,在rt.jarxml-apis.jar和中找到了。应该就是这两个jar冲突所致,由于引用优先级的不同导致引用了xml-apis.jar中的方法。

其实在pom.xml中并没有这个jar的直接引用,在Dependency Hierarchy视图中搜索xml-apis可以发现,它其实是由于dom4j的依赖而引入的。如图:

解决方法:右击该jar,选择exclude maven artifact,确认并保存,重新编译即可:

最终的pom.xml中只是在dom4j<dependency>中多了这么一段<exclusions>

<dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>1.6.1</version>
    <exclusions>
        <exclusion>
            <artifactId>xml-apis</artifactId>
            <groupId>xml-apis</groupId>
        </exclusion>
    </exclusions>
</dependency>

参考:

http://stackoverflow.com/questions/5534864/compilation-error-in-node-gettextcontent-for-jdk-6

http://www.educity.cn/wenda/364108.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-11 01:36:08

使用org.w3c.dom.Element的setTextContent()、getTextContent()方法时出现编译错误的相关文章

org.w3c.dom.Element 缺少 setTextContent 步骤

org.w3c.dom.Element 缺少 setTextContent 方法 今天将项目环境由jdk5改为jdk6,eclipse重新编译工程后,却突然出现org.w3c.dom.Element没有setTextContent方法 的编译错. 放狗搜后,发现主要是 xercesImpl.jar 和 xml-apis.jar的Element版本太老造成的,setTextContent是DOM3中的方法. 但在pom文件中,未发现有直接引用这两个jar包的地方.好在eclipse maven插件

org.w3c.dom(java dom)解析XML文档

位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2.解析器:DocumentBuilder 创建方法:通过解析器工厂类来获得 DocumentBu

Java知识积累-XML的DOM解析修改和删除方法

import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.tr

Java知识积累3-XML的DOM解析修改和删除方法

import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.Transformer;import javax.xml.tr

org.w3c.dom.Node.getTextContent()方法编译错误-已解决

org.w3c.dom.Node.getTextContent()方法编译错误. 在项目的Java Build Path | Order and Export选项卡中,将JRE System Library选中,并Top置顶.然后再进行编译即可. 参考: https://blog.csdn.net/maoxiao1229/article/details/51694553 原文地址:https://www.cnblogs.com/wrong/p/10441783.html

W3C DOM 事件模型(简述)

1.事件模型 由于事件捕获与冒泡模型都有其长处和解释,DOM标准支持捕获型与冒泡型,能够说是它们两者的结合体.它能够在一个DOM元素上绑定多个事件处理器,而且在处理函数内部,thiskeyword仍然指向被绑定的DOM元素,另外处理函数參数列表的第一个位置传递事件event对象.首先是捕获式传递事件,接着是冒泡式传递,所以,假设一个处理函数既注冊了捕获型事件的监听,又注冊冒泡型事件监听,那么在DOM事件模型中它就会被调用两次. [ oschina] 2.事件传播 A)冒泡模式(Bubble)IE

W3C DOM

“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式.” DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构. DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的对象.这些对象的行为和属性以及这些对象之间的关系. 最初人们把它认为是一种让JavaScript在浏览器间可移植的方法,不过DOM的应用已经远远超出这个范围.Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改

HTML DOM Element

HTML DOM Element(元素) 文档本身是文档节点 . 所有 HTML 元素是元素节点 . 所有 HTML 属性是属性节点 HTML 元素内的文本是文本节点 . 注释是注释节点 . NODE的用法 1.如需向 HTML DOM 添加新元素,您首先必须创建该元素,然后把它追加到已有的元素上. 创建新的 HTML 元素 使用appendChild() appendChild()实例如下: <div id="div1"> <p id="p1"&

Ext.dom.Element 常用方法解析

Ext.Element,Ext.core.Elemen,Ext.dom.Element 这几个类都是一个类,在EXT当中给起了别名而已,这个类到作用主要是针对DOM元素操作的封装,使我们操作针对DOM操作更加方便了,而且底层屏蔽了浏览器到差异. 那么如何返回一个Ext.Element对象呢?通过Ext.get(el)就可以了. 参数 el : String/HTMLElement/Ext.Element(The id of the node, a DOM Node or an existing