我应该如何从xml的Apache Jackrabbit中的节点中提取属性?

时间:2019-01-27 10:07:40

标签: java jcr jackrabbit

我一直在这里http://jackrabbit.apache.org/jcr/first-hops.html中使用示例三,但是对我来说,仍然不清楚如何访问节点的属性。

在第一个屏幕截图中 Have access to jcr prop

我使用了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。 但是,当我尝试获取此信息时,将该属性移出节点,则无法执行此屏幕截图中的操作。 Cannot get props

这是上面截图中的代码片段:

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

1 个答案:

答案 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

请注意不同的路径。