Java 不知道名称空间的文档上的XPath

Java 不知道名称空间的文档上的XPath,java,xml,xpath,Java,Xml,Xpath,我正在对使用名称空间集解析的文档运行XPath 我试图获取的元素的路径是/path/to/The/element,这很有效。这同样有效:/path//element 但是,一旦我删除根本身://元素结果集为空 我目前正在文档实例本身上运行xpath,我尝试在Document.getDocumentElement()上运行它(只是为了确保),这会产生相同的结果 如果我将文档设置为名称空间感知,这确实有效://tns:element 为什么这样一个相对路径在不知道名称空间的文档上不起作用?您是否尝试

我正在对使用名称空间集解析的文档运行XPath

我试图获取的元素的路径是
/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你是对的,当然,我不应该这么专横。谢谢你提醒我。这绝对是一个有趣的案例,我很想看看代码。