0

我想使用 getChildText() 从深几级的节点获取文本。文件中有两个命名空间。下面的语法不起作用并将textToGet设置为null

 String textToGet = root.getChildText("ns1:Customer/ns1:Address/ns1:Street/ns2:Streetname");

我知道有一种替代方法,即先获取子元素,然后获取其文本,但我想使用单线。

另外,宁愿不链接getChild(),因为某些元素不能保证在文件中。

4

1 回答 1

1

您将无法使其成为单线……

考虑使用 XPaths.... JDOM 2.x 应该对此有所帮助:

XPathExpression<String> xpe = XPathFactory.instance().compile(
    Filters.fstring(), "ns1:Customer/ns1:Address/ns1:Street/ns2:Streetname",
    null, namespace_ns1, namespace_ns2);
String textToGet = xpe.evaluateFirst(root);

(textToGet 可能为空)

编辑,上面的 XPath 表达式实际上返回一个元素......您应该在 XPath 的末尾添加“/text()”,或者将 textToGet 更改为字符串(以及过滤器)。

罗尔夫

于 2012-10-11T18:02:41.293 回答