XPath表达式不返回//元素,但// *返回计数
我正在使用XOM以及以下示例数据:
Element root = cleanDoc.getRootElement(); //find all the bold elements, as those mark institution and clinic. Nodes nodes = root.query("//*"); Patient Information
以下元素返回许多元素(来自实际数据):
//*
但有点像
//head
什么都不返回 如果我遍历根的子节点,数字似乎匹配,如果我打印元素名称,一切看起来都是正确的。
我正在使用HTML,使用tagsoup解析它,然后从结果字符串构建XOM文档。 这部分可能会出现如此可怕的错误? 我觉得这里有一些奇怪的编码问题,但我只是没有看到它。 Java字符串是字符串,对吧?
您的文档具有默认命名空间,这意味着在XPath模型中,所有元素都在该命名空间中。
查询应该是//html:head
。 您必须提供命名空间映射到XPath查询。
请注意,虽然XPath表达式使用名称空间前缀,但它必须匹配的名称空间uri。
XPathContext ctx = new XPathContext("html", "http://www.w3.org/1999/xhtml"); Nodes nodes = root.query("//html:head", ctx );
- 如何在Spring Boot中使用Hibernate / JPA返回多级json
- 摆动布局 – 使用多个JEditorPanes滚动的中心面板
- Ant产生的Beanshell,“无法为beanshell创建javax脚本引擎”
- 如何编写服务器/客户端video和音频流应用程序?
- Java Generics Reflection:子类的通用字段类型
- 调用init方法失败; 嵌套exception是java.lang.IllegalArgumentException:对于方法public abstract的查询,validation失败
- 如何在spring test中的@Test方法之前只填充一次数据库?
- BoxLayout拒绝承认JButton的首选大小
- Java替换方法,替换为空字符