2

当我试图获取根元素 Company 的属性时,我发现了以下问题,也有一些例外。

但是我进口了我需要的一切;然后eclipse也说删除未使用的导入。

我想知道为什么即使在我导入了所有内容之后它仍然会发生,请给我一些想法来消除这个错误。

这也是进行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)
4

2 回答 2

6

你有

import javax.lang.model.element.Element;

但你想要

import org.w3c.dom.Element;

反而。

另外,关于这个:

这也是进行xml解析的方式吗?有没有其他简单的方法可以做到这一点?

您正在使用 java 开箱即用的方法来进行 xml 解析。使用第三部分库有几个更好的选择。我建议测试jdom,它要简单得多。请参见此处的示例。

于 2013-07-02T12:51:39.453 回答
0

问题是因为这个

import javax.lang.model.element.Element;

使用这个导入语句

import org.w3c.dom.Element
于 2013-07-02T12:50:33.733 回答