我的目标:在Node
对象中获取XML的根目录,然后对其进行评估!
我的问题:
我正在尝试从XML文件的ROOT中评估我的表达式,我有这个方法(我需要实现的是):
public Object evaluate(String expression, QName returnType);
假设我已经使用Document
打开了XML,如下所示:
//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
...
那我哪里出错了?
它出了什么问题?
谢谢大家,杰克
答案 0 :(得分:1)
首先:
你的unitedString不是一个有效的xPath表达式,它应该像/ root / node / xPath那样描述(a)xml文件中特定节点的路径。
第二:
任何xml的根节点都是一个名为DocumentElement的特殊节点,您可以通过调用doc.getDocumentElement()
来获取它。