我想使用getChildText()从几个级别的节点获取文本。文件中有两个名称空间。以下语法不起作用,并将 textToGet 设置为 null 。
String textToGet = root.getChildText("ns1:Customer/ns1:Address/ns1:Street/ns2:Streetname");
我知道有一种方法可以先获得Child Element,然后再使用Text,但我想使用单行。
此外,宁愿不链接getChild(),因为某些元素不能保证在文件中。
答案 0 :(得分:1)
你无法将其作为单行......
考虑使用XPath .... 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可能为null)
编辑,上面的XPath表达式实际上返回一个元素......你应该在XPath的末尾添加“/ text()”,或者将textToGet改为String(以及过滤器)。
罗尔夫