我有一个
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()"
本地名称将忽略命名空间并将起作用(对于它找到的第一个实例)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。