JDOM:获取具有特定名称的所有元素后代(不仅是直接子元素)

时间:2012-05-03 09:23:57

标签: children jdom descendant

编辑:问题解决了。 root和descendants有不同的命名空间。

所以,我试图让所有根元素的后代都有一个特定的名字,“include”。

    Element root = doc.getRootElement();
    Namespace ns = root.getNamespace();

    ElementFilter ef = new ElementFilter("include", ns);
    Iterator<Element> childrenIter = root.getDescendants(ef);

    LinkedList<String> schemas = new LinkedList<String>();

    while (childrenIter.hasNext()) {
        Element el = childrenIter.next();
        String schemaLocation = el.getAttributeValue("schemaLocation");
        schemas.push(schemaLocation);
    }

不幸的是,while循环立即退出,hasNext()返回null,即使树中有“include”元素。有什么我做错了吗?我也许可以使用getChildren()然后逐级深入,但这更方便。

<wsdl:definitions ...>
   <wsdl:types ...>
      <xsd:schema ...>
         <xsd:include schemaLocation="VsbKontoInfoGet_1.xsd"/>
      </xsd:schema>
   </wsdl:types>
   ...
</wsdl:definitions>
编辑:问题解决了。 root和descendants有不同的命名空间。

0 个答案:

没有答案