相关疑难解决方法(0)

如何在具有默认命名空间的xml文档上使用XPath

我想操作具有默认命名空间但没有前缀的xml doc.有没有一种方法可以使用没有命名空间uri的xpath,就好像没有命名空间一样?
我相信如果我们将documentBuilderFactory的namespaceAware属性设置为false应该是可能的.但就我而言,它不起作用.
我的理解是不正确的还是我在代码中犯了一些错误?

这是我的代码:

    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    domFactory.setNamespaceAware(false);
    try {
        DocumentBuilder builder = domFactory.newDocumentBuilder();
        Document dDoc = builder.parse("E:/test.xml");

        XPath xPath = XPathFactory.newInstance().newXPath();
        NodeList nl = (NodeList) xPath.evaluate("//author", dDoc, XPathConstants.NODESET);
        System.out.println(nl.getLength());
    } catch (Exception e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

这是我的xml:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.mydomain.com/schema">
  <author>
    <book title="t1"/>
    <book title="t2"/>
  </author>
</root>
Run Code Online (Sandbox Code Playgroud)

java xml xpath

16
推荐指数
1
解决办法
3万
查看次数

Java - XML解析器性能:Sun Java Streaming XML Parser(SJSXP)与Woodstox

我正在寻找最新的,内存效率和高性能的Java XML解析API.我需要解析3 MB到5 MB的XML文件.

我对此进行了谷歌搜索并了解了Sun Java Streaming XML Parser(SJSXP),而Woodstox比DOM和SAX快得多.两者都使用StAX API.*这些技术不支持架构验证.

Aalto XML处理器也实现了StAX API.

我没有找到关于这些技术的性能的具体发现.

哪一个在内存高效,高性能和易用性方面最佳?

java xml stax xml-parsing woodstox

5
推荐指数
1
解决办法
4635
查看次数

标签 统计

java ×2

xml ×2

stax ×1

woodstox ×1

xml-parsing ×1

xpath ×1