NodeList的实现

时间:2012-05-14 21:19:23

标签: java xml xpath implementation nodelist

我像这样实施了NodeList

import java.util.ArrayList;
import java.util.Collections;

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


public class MyNodeList  implements NodeList{

    //// local member  ... 
    ArrayList<Node> arrayNode   = new ArrayList<Node>() ; 
    ////

    @Override
    public int getLength() {
        return arrayNode.size() ; 
    }

    @Override
    public Node item(int index) {
        return (arrayNode.get(index)).cloneNode(true); 
    }

    public void reverse ()  {
        Collections.reverse(arrayNode);
    }

    public void castNodeToMyNode (NodeList nodeListToCast) {
        int lenList = nodeListToCast.getLength();
        for (int i = 0; i < lenList; i++) {
            this.arrayNode.add(nodeListToCast.item(i)) ; 
        }
    }
    public void appendNodeList (NodeList nodeListToappend) {
        this.castNodeToMyNode(nodeListToappend)  ; 
    }

}

我必须这样做,因为我需要方法reverse - 尊重NodeList的顺序。

我的问题是:何时使用evaluate功能 - Object result = xpath.evaluate(expression, source, XPathConstants.NODESET);

我想将source参数设置为item实现的MyNodeList。在sourcec时将myNodeAfterProbExp.item(indexOfNode)设置为myNodeAfterProbExp是否可以 是MyNodeList的对象? 我做了类似的事情,但我认为它对evaluate的执行具有破坏性。

提前致谢。

0 个答案:

没有答案