首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JXPath中使用//运算符

在JXPath中使用//运算符
EN

Stack Overflow用户
提问于 2012-11-17 23:30:35
回答 1查看 1.5K关注 0票数 1

一些根对象具有字段MyCollection myCollection。类MyCollection实现Collection接口。通过调用someService().getName()可以获得元素的名称,这就是我创建Rules类的原因。

context.getValue("/myCollection");返回myCollection - OK

context.getValue("//myCollection");返回myCollection - OK

context.getValue("/myCollection/.[rules:getName() = 'secondName']");返回IMyNode的实例,someService().getName()返回"secondName“- OK

context.getValue("/myCollection//.[rules:getName() = 'secondName']");行之后,不执行下一行。也没有例外,也没有设置宽松的模式。我不明白这是怎么回事。Rules类的第8行打印"POINTER SET ON /myCollection[1]"。我想在这个例子中得到的元素在/myCollection[2]中。

元素的名称就是在这里得到的。我认为这门课是对的。

代码语言:javascript
复制
public class Rules {
public static String getName(ExpressionContext context){
   Pointer pointer = context.getContextNodePointer();
    if(pointer == null){
        return "";
    } else {
        if(pointer.getValue() instanceof IMyNode){
        System.out.println("POINTER SET ON " + pointer);
            IMyNode node = (IMyNode)pointer.getValue();
           return node.someService().getName();
       }
   }
   return "";
}
}

编辑:这个问题是关于JXPath的。添加标记xpath而不是jxpath是错误的。

EN

回答 1

Stack Overflow用户

发布于 2012-11-18 00:09:59

尝试使用*而不是.。另外,我认为您可以使用标准的XPath函数local-name()而不是rules:getName()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13435851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档