我有以下xml
<administration xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd">
<students>
<student name = 'alpha' number='s1111111'>
<grades>
<grade course='beta'> 1 </grade>
</grades>
</students>
</administration>
我使用以下JDOM代码,但它一直返回null。
reader.root
指的是文档的根元素
Element studentXmlElement = (org.jdom.Element) XPath.selectSingleNode(reader.root, " administration/students/student[@number='s1111111']");
但正如我所说,一旦我返回,studentXmlElement为null。
答案 0 :(得分:1)
很少:学生标签没有关闭,xpath有一个前导空格。我认为这是错误的。
您的xml指定了命名空间,并且您的xpath选择不包含命名空间和前缀。 使用'xpath.addNamespace(java.lang.String前缀,java.lang.String uri)'方法将名称空间添加到xpath。
请注意,您的xml没有任何名称空间前缀。 在XPath中,没有“默认命名空间”这样的东西。空前缀始终解析为空名称空间URI。
请在此处参阅API以获取更多详细信息:http://www.jdom.org/docs/apidocs/org/jdom/xpath/XPath.html#addNamespace%28java.lang.String,%20java.lang.String%29