我一直在玩这里的第三个例子 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:unstructed”的值作为响应。
不幸的是,我在网上、Github 等上找不到很多代码示例,很多都已经过时了,而且也没有像 Scrapy 或其他库/框架那样的书籍。
提前谢谢您。
祝你有美好的一天!
戴维德
最佳答案
在第一种情况下,您正在查看以下属性:
/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
注意不同的路径。
关于java - 我应该如何从 xml 中的 Apache Jackrabbit 中的节点中提取属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386978/