我想使用 getChildText() 从深几级的节点获取文本。文件中有两个命名空间。下面的语法不起作用并将textToGet设置为null。
String textToGet = root.getChildText("ns1:Customer/ns1:Address/ns1:Street/ns2:Streetname");
我知道有一种替代方法,即先获取子元素,然后获取其文本,但我想使用单线。
另外,宁愿不链接getChild(),因为某些元素不能保证在文件中。
您将无法使其成为单线……
考虑使用 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 更改为字符串(以及过滤器)。
罗尔夫