我有一个使用java列表和Map创建的java对象树结构(模型),我想计算以下类型的xpath:
name[/type='theType']
这个xpath表达式需要上下文节点和根节点。但是,我没有找到如何将这两个节点传递给jxpath进行求值的方法。我尝试了以下代码的几个变体(尝试交换根和上下文,null代替rootcontext等):
JXPathContext rootContext = JXPathContext.newContext(rootNode);
JXPathContext contextContext = JXPathContext.newContext(rootContext, contextNode);
Pointer p = contextContext.getPointer(xpath);
return p.getNode();
但都没用。与xmldom模型不同的是,在容器中,您无法从上下文节点直接访问根节点。
你对怎么做有什么建议吗?
1条答案
按热度按时间au9on6nz1#
在有人提出直接解决方案之前,我是这样解决问题的:
我为变量“\uu root”创建了一个变量解析器,并将其设置为jxpath上下文,如下所示:
然后我在xpath中找到所有根引用,并用“$\u root/”替换它们:
下面是使用的函数: