2013-07-02 2 views
2

Пока я пытался получить атрибут корневого элемента Company, я обнаружил следующие проблемы, а также некоторые исключения.Разбор Xml-файла с использованием Java-бросков Исключение. Зачем?

Но я импортировал все, что мне нужно; то также затмение говорит, что удалить неиспользуемый импорт.

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

Также это способ сделать xml-синтаксический анализ? есть ли альтернативный и простой способ для делать то же самое?

import java.io.EOFException; 
import java.io.File; 
import javax.lang.model.element.Element; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import org.w3c.dom.Document; 
import javax.lang.model.element.Element; 

public class DomTest1 { 
    private static final String file = "test1.xml"; 

    public static void main(String[] args) { 
     if (args.length>0) { 
      file = args[0]; 
     } 

     try { 
      DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); 
      DocumentBuilder builder=factory.newDocumentBuilder(); 
      Document document=builder.parse(new File(file)); 
      Element root=document.getDocumentElement(); 
      System.out.println(root.getTagName()); 
      System.out.printf("name: %s%n", root.getAttribute("name")); 
      System.out.printf("sHortname: %s%n", root.getAttribute("sHortname")); 
      System.out.printf("mission : %s%n", root.getAttribute("mission")); 
     } catch(EOFException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
Type mismatch: cannot convert from org.w3c.dom.Element to javax.lang.model.element.Element 
The method getTagName() is undefined for the type Element 
The method getAttribute(String) is undefined for the type Element 
The method getAttribute(String) is undefined for the type Element 
The method getAttribute(String) is undefined for the type Element 

at DomTest1.main(DomTest1.java:23) 
+1

Вам необходимо импортировать элемент из org.w3c.dom.Element – Inv3r53

ответ

6

Вы

import javax.lang.model.element.Element; 

но вы хотите

import org.w3c.dom.Element; 

вместо этого.

Кроме того, в отношении этого:

также это способ сделать XML-синтаксический анализ? есть ли альтернатива и простой способ сделать то же самое?

Вы используете java из предоставленных мной способов для обработки XML-кода. Существует несколько лучших альтернатив, использующих библиотеки 3-й части. Я бы рекомендовал тестирование jdom, это намного проще. См. Пример here.

+1

... «у вас есть« это даже * дважды * » –

+0

Хорошо ... но сейчас в элементе Элемент элемента = document.getDocument Element. Но Eclipse предложил мне «Добавить Cast to elements», почему? где ошибка? – Bitopan

+0

«теперь в строке»? – eis

0

проблема из-за этого

import javax.lang.model.element.Element; 

использования этого импорта заявление

import org.w3c.dom.Element 
+0

то что мне делать? удалить этот импорт? – Bitopan

+1

Вы должны просто заменить 'import javax.lang.model.element.Element;' с 'import org.w3c.dom.Element;' – mariosangiorgio

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