加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 00:07:50 所属栏目:Java 来源:网络整理
导读:我有一个 XML文件形式的OWL文档.我想从这个文档中提取元素.我的代码适用于简单的XML文档,但它不适用于OWL XML文档. 我实际上是想获得这个元素:/ rdf:RDF / owl:Ontology / rdfs:label,我这样做了: DocumentBuilder builder = builderfactory.newDocumen
我有一个 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.

解决方法

因为xpath不知道您正在使用的命名空间.
尝试使用:
"/*[local-name()='RDF']/*[local-name()='Ontology']/*[local-name()='label']/text()"

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读