0

我的目标:在对象中获取 XML 的根Node,然后评估它!

我的问题 :

我正在尝试从 XML 文件的 ROOT 评估我的表达式,我有这个方法(我需要实现的是):

public Object evaluate(String expression, QName returnType);

假设我已经打开了 XML Document,如下所示:

        //load the document into a DOM Document
        this.domFactory = DocumentBuilderFactory.newInstance();

        domFactory.setNamespaceAware(true); // never forget this!

        this.builder = domFactory.newDocumentBuilder();
        this.doc = builder.parse("books.xml");

        //create an XPath factory
        this.factory = XPathFactory.newInstance();

        //create an XPath Object
        this.xpath = factory.newXPath();

现在当我这样做时,里面 public Object evaluate(String expression, QName returnType);

String unitedString = " my characters " ; 
rootNode = doc.getChildNodes().item(0);
System.out.println(rootNode.getNodeName()); // this line presents the name of the root 
Object returnedObject= xpath.evaluate(unitedString,rootNode ,returnType);   // this line makes eclipse go crazy 

Eclispe 在 "4" 行之后说:" DTMManagerDefault.getDTMHandleFromNode(Node) line: not available " 但是在 "3" 行中,Eclipse 生成了根的名称,即inventory...

那么我哪里出错了?

它出什么问题了 ?

谢谢大家,杰克

4

1 回答 1

1

第一的:

您的 unitedString 不是有效的 xPath 表达式,它应该类似于 /root/node/ xPath 的描述路径到您的 xml 文件中的 (a) 特定节点。

第二:

任何 xml 的根节点都是一个称为 DocumentElement 的特殊节点,您可以通过调用 doc.getDocumentElement()

于 2012-05-15T09:41:58.553 回答