0

私の目標は、オブジェクト内のXMLのルートを取得し、Nodeそれを評価することです。

私の問題 :

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...

それで、私はどこで間違ったのですか?

どうしたの ?

みんなありがとう、ジャック

4

1 に答える 1

1

最初:

unitedString は有効な xPath 式ではありません。/root/node/ xPath の特定のノードへのパスを xml ファイルに記述する必要があります。

2番目:

xml のルート ノードは DocumentElement と呼ばれる特別なノードであり、doc.getDocumentElement() を呼び出すことで取得できます。

于 2012-05-15T09:41:58.553 に答える