Java 不知道名称空间的文档上的XPath
我正在对使用名称空间集解析的文档运行XPath 我试图获取的元素的路径是Java 不知道名称空间的文档上的XPath,java,xml,xpath,Java,Xml,Xpath,我正在对使用名称空间集解析的文档运行XPath 我试图获取的元素的路径是/path/to/The/element,这很有效。这同样有效:/path//element 但是,一旦我删除根本身://元素结果集为空 我目前正在文档实例本身上运行xpath,我尝试在Document.getDocumentElement()上运行它(只是为了确保),这会产生相同的结果 如果我将文档设置为名称空间感知,这确实有效://tns:element 为什么这样一个相对路径在不知道名称空间的文档上不起作用?您是否尝试
/path/to/The/element
,这很有效。这同样有效:/path//element
但是,一旦我删除根本身://元素
结果集为空
我目前正在文档实例本身上运行xpath,我尝试在Document.getDocumentElement()
上运行它(只是为了确保),这会产生相同的结果
如果我将文档设置为名称空间感知
,这确实有效://tns:element
为什么这样一个相对路径在不知道名称空间的文档上不起作用?您是否尝试过//*/element?如果
/path/to/the/element
起作用,我倾向于说//element
不可能不产生任何结果。不过,我们需要能够复制您的问题。请显示Java代码、输入文档和您得到的输出(与您期望的输出相比)。@Paolof76//*/element
是///element
的子集,因此//*/element
返回的结果不可能比///element
@MathiasMüller更多:根据XPath标准,是的;但是我们已经看到了“不可能”的行为(/path//element
返回的比//element
更多),所以还有其他事情发生了。@LarsH你是对的,当然,我不应该这么专横。谢谢你提醒我。这绝对是一个有趣的案例,我很想看看代码。你试过//*/element吗?如果/path/to/the/element
有效,我倾向于说//element
不可能不产生任何结果。不过,我们需要能够复制您的问题。请显示Java代码、输入文档和您得到的输出(与您期望的输出相比)。@Paolof76//*/element
是///element
的子集,因此//*/element
返回的结果不可能比///element
@MathiasMüller更多:根据XPath标准,是的;但是我们已经看到了“不可能”的行为(/path//element
返回的比//element
更多),所以还有其他事情发生了。@LarsH你是对的,当然,我不应该这么专横。谢谢你提醒我。这绝对是一个有趣的案例,我很想看看代码。