我一直在这里http://jackrabbit.apache.org/jcr/first-hops.html中使用示例三,但是对我来说,仍然不清楚如何访问节点的属性。
在第一个屏幕截图中
我使用了IDE中的调试器,并对表达式进行了评估
session.getNode("/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn").getProperty("jcr:xmltext/jcr:xmlcharacters").getString().trim();
您可以看到我如何访问“ jcr:xmltest / jcr:xmlcharacters”,结果得到2。 但是,当我尝试获取此信息时,将该属性移出节点,则无法执行此屏幕截图中的操作。
这是上面截图中的代码片段:
var node = session.getNode("/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn");
var properties = node.getProperties();
List<string> result = new ArrayList<>();
while(properties.hasNext()) {
Property property = properties.nextProperty();
result.add(property.getString().trim());
}
return result;
您可以看到我如何只获得一个包含“ nt:unstructured”的值。
不幸的是,我在Github等网上找不到很多代码示例,其中许多已经过时,而且,也没有关于Scrapy或其他库/框架的书籍。
谢谢。
祝你有美好的一天!
Davide
答案 0 :(得分:1)
在第一种情况下,您正在查看以下属性:
/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn/jcr:xmltext
在第二种情况下:
/importxml/xhtml:html/xhtml:body/mathml:math/mathml:apply/mathml:apply[2]/mathml:apply[2]/mathml:cn
请注意不同的路径。