我像这样实施了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
的执行具有破坏性。
提前致谢。