Dom4 1.6.1j:XPath可以返回非节点类型值吗?

时间:2012-07-06 12:31:07

标签: java xml dom4j

e.g。我想返回节点的名称,即字符串,因此

/ MXML /交易/贸易/ tradeBody / * [1] /本地名称()

但是,当我尝试使用doc.valueOf或doc.selectSingleNode或其他任何我尝试评估它时,我得到了这个错误:

org.dom4j.InvalidXPathException:无效的XPath表达式:/ MxML / trades / trade / tradeBody / * [1] / local-name()预期的节点类型

我知道它的含义,我正在返回一个String而不是一个节点,所以我该如何要求这个字符串呢?

感谢。

1 个答案:

答案 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