相关疑难解决方法(0)

如何使用Xpath检索XML文件中的命名空间

我有一个XML文件,如下所示:

<Elements name="Entities" xmlns="XS-GenerationToolElements">
Run Code Online (Sandbox Code Playgroud)

我将不得不打开很多这些文件.每个命名空间都有不同的命名空间,但一次只有一个命名空间(我永远不会在一个xml文件中找到两个命名空间).

使用XPath我想有一种自动方式将给定的命名空间添加到命名空间管理器.到目前为止,我只能通过解析xml文件来获取命名空间,但我有一个XPathNavigator实例,它应该有一个很好的,干净的方式来获取命名空间,对吧?

- 要么 -

鉴于我只有一个命名空间,以某种方式使XPath使用xml中唯一存在的命名空间,从而通过始终附加命名空间来避免混乱代码.

xml xpath namespaces

37
推荐指数
2
解决办法
5万
查看次数

如何使用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();
Run Code Online (Sandbox Code Playgroud)

我也试过这样只提取rdfs:label元素:

 XPathExpression xPathExpression = xPath.compile("//rdfs:label");        
 NodeList nodes = (NodeList) xPathExpression.evaluate(xmlDocument, XPathConstants.NODESET);
Run Code Online (Sandbox Code Playgroud)

但是这个节点列表是空的.

请让我知道我哪里出错了.我正在使用Java XPath API.

java xpath rdf owl

6
推荐指数
2
解决办法
1272
查看次数

标签 统计

xpath ×2

java ×1

namespaces ×1

owl ×1

rdf ×1

xml ×1