e.g。我想返回节点的名称,即字符串,因此
/ MXML /交易/贸易/ tradeBody / * [1] /本地名称()
但是,当我尝试使用doc.valueOf或doc.selectSingleNode或其他任何我尝试评估它时,我得到了这个错误:
org.dom4j.InvalidXPathException:无效的XPath表达式:/ MxML / trades / trade / tradeBody / * [1] / local-name()预期的节点类型
我知道它的含义,我正在返回一个String而不是一个节点,所以我该如何要求这个字符串呢?
感谢。
答案 0 :(得分:2)
你确定它适用于JAXP吗?表达对我来说不合适; local-name()不是节点步骤。
这对dom4j很好:
Document doc = DocumentHelper
.parseText("<x:fish xmlns:x='42'>Goodbye, and thanks for all the fish</x:fish>");
XPath xpath = new DefaultXPath("local-name(/*[1])");
Object result = xpath.evaluate(doc);
System.out.printf("Type: %s, Value: %s\n", result.getClass()
.getSimpleName(), result);
打印
Type: String, Value: fish