Tag: xpath

SAX解析器可以在Java中使用XPath吗?

我正在尝试迁移我的一个类,它使用带有大量XPath表达式的DOM解析来进行SAX解析。 DOM解析对我来说很好,但是我尝试解析的一些文件太大而导致服务器超时。 我想重用XPath与SAX解析,但我不确定是否可能,如果不可能,请你帮助我,因为我不知道当我只使用SAX时,以下代码将如何: Document doc = bpsXml.getDocument(); String supplierName = BPSXMLUtils.getXpathString(doc, “/Invoice/InvoiceHeader/Party[@stdValue=’SU’]/Name/Name1”); String language = BPSXMLUtils.getXpathString(doc, “/Invoice/InvoiceHeader/InvoiceLanguage/@stdValue”);

如何在java的xpath中在运行时禁用dtd?

我在文件中得到了dtd,我无法将其删除。 当我尝试用Java解析它时,我得到“引起:java.net.SocketException:网络无法访问:连接”,因为它的远程dtd。 我能以某种方式禁用dtd检查吗?

默认XML命名空间,JDOM和XPath

我想使用JDOM读取XML文件,然后使用XPath从JDOM文档中提取数据。 它创建了Document对象,但是当我使用XPath查询Document的元素列表时,我什么也得不到。 我的XML文档在根元素中定义了一个默认命名空间。 有趣的是,当我删除默认命名空间时,它成功运行XPath查询并返回我想要的元素。 还有什么办法让我的XPath查询返回结果? XML: Lord of the Rings: The Fellowship of the Ring 178 Ian Holm Elijah Wood Ian McKellen The Matrix 136 Keanu Reeves Laurence Fishburne Java的: public static void main(String args[]) throws Exception { SAXBuilder builder = new SAXBuilder(); Document d = builder.build(“xpath.xml”); XPath xpath = XPath.newInstance(“collection/dvd”); xpath.addNamespace(d.getRootElement().getNamespace()); System.out.println(xpath.selectNodes(d)); }

在Java中使用XPath解析XML

我有一个XML结构与此类似: 我有一个Category类,它有一个subcategory列表( List )。 我正在尝试使用XPath解析此XML文件,但我无法获取类别的子类别。 我怎么能用XPath做到这一点? 有一个更好的方法吗?