java - 我应该如何从 xml 中提取 Apache Jackrabbit 中的节点的属性?
问题描述
我一直在玩这里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 或其他库/框架那样的书籍。
先感谢您。
祝你今天过得愉快!
戴维德
解决方案
在第一种情况下,您正在查看以下属性:
/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
注意不同的路径。
推荐阅读
- woocommerce - 显示过滤产品时如何覆盖/shop/页面上的类别模板?
- python - 使用机器人发送不和谐消息时记录其 id
- c# - 为多对多关系场景选择一个高效的数据模型 Azure Cosmos Db
- css - 弹性项目未填充其父项的高度
- css - 背景颜色不会延伸到可滚动 div 的底部
- r - 如何删除R中的无用字符?
- reactjs - 电影预告片; 未定义`movieTrailer`
- ios - 在 MacOS 中使用 AVCaptureVideoPreviewLayer 的问题
- assembly - 堆栈指针和帧指针指向 ARM 64 中的同一地址是否有效?
- verilog - 多个模块不同名称相同端口