2013-12-03 4 views
5

Я пытаюсь использовать метод setTextContent в куске коды ниже, и я получаю эту ошибку компиляции в Eclipse:Проблемы с путем построения

Метод setTextContent(String) не определен для типа Element

Но как только я изменил порядок построения пути, я смог скомпилировать этот код без ошибок.

import org.w3c.dom.Element; 
import org.w3c.dom.Node; 

Element element = (Element) list.item(i); 
Node node = list.item(i); 
if ("Date ".equals(node.getNodeName())) { 
    element.setTextContent(""); 
} 

Есть ли альтернативный способ, а не изменение пути сборки?

+0

Определенно кажется, что проблема пути сборки/пути пути. Какой бы класс Element, который находится в вашем пути к классам, не имеет метода setTextContent (String). – Zerkz

ответ

17

getTextContent/setTextContent Метод был введен с DOM Level 3 - который был добавлен в Java 5. Какая версия jre вы используете, а также убедитесь, что у вас нет двух установленных jre.

Вам нужно перейти в Свойства для проекта в затмении. Затем выберите «Java Build Path» и вкладку «Order and Export». Здесь вы можете упорядочить порядок зависимостей. Убедитесь, что ваша JRE выше, чем Maven Dependencies.

Перейдите на вкладку «Заказ и экспорт», выберите библиотеку jdk и нажмите «Бутон» . TOP, чтобы переместить все это вверх, так что это должны быть первые библиотеки для использования.

Переместите xml-apis-1.0.b2.jar (или версию, имеющуюся у вас) до конца, за встроенными библиотеками JVM.

+0

Решено! Моя JRE была внизу, чем зависимость от maven. Я просто переместил JRE выше зависимости от maven и ушел! – pan1490

+1

Отлично! Быстро решила мою проблему. – jseals

+0

Отлично! заслуживает голосования –

1

Не включайте две библиотеки с одной и той же сигнатурой метода в одном классе.

Другими словами, если вы дублируете полностью квалифицированные классы, вы находитесь во власти загрузчика классов. Когда вы можете контролировать это, хорошо, но лично, я думаю, что это страшно.

Одним из менее предпочтительных решений было бы физическое удаление функциональности нарушения из одной из библиотек, но тогда вы можете столкнуться с проблемой хуже.

Смежные вопросы