为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Java中的XPath访问OWL文档?

如何使用Java中的XPath访问OWL文档?

拉风的咖菲猫 2019-08-28 15:04:54
如何使用Java中的XPath访问OWL文档?我有一个XML文件形式的OWL文档。我想从这个文档中提取元素。我的代码适用于简单的XML文档,但它不适用于OWL XML文档。我实际上是想获得这个元素:/rdf:RDF/owl:Ontology/rdfs:label为此我做了这个: DocumentBuilder builder = builderfactory.newDocumentBuilder();     Document xmlDocument = builder.parse(             new File(XpathMain.class.getResource("person.xml").getFile()));     XPathFactory factory = javax.xml.xpath.XPathFactory.newInstance();     XPath xPath = factory.newXPath();     XPathExpression xPathExpression = xPath.compile("/rdf:RDF/owl:Ontology/rdfs:label/text()");     String nameOfTheBook = xPathExpression.evaluate(xmlDocument,XPathConstants.STRING).toString();我也试过这样只提取rdfs:label元素: XPathExpression xPathExpression = xPath.compile("//rdfs:label");          NodeList nodes = (NodeList) xPathExpression.evaluate(xmlDocument, XPathConstants.NODESET);但是这个节点列表是空的。请让我知道我哪里出错了。我正在使用Java XPath API。
查看完整描述

3 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

因为xpath不知道您正在使用的命名空间。尝试使用:

"/*[local-name()='RDF']/*[local-name()='Ontology']/*[local-name()='label']/text()"

本地名称将忽略命名空间并将起作用(对于它找到的第一个实例)


查看完整回答
反对 回复 2019-08-28
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

如果您javax.xml.namespace.NamespaceContext自己实现,则可以在查询中使用命名空间。


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信