JAXB解组XML并获取所有已识别的标记

时间:2015-06-24 10:23:27

标签: java xml jaxb

有没有办法从使用JAXB解组xml后返回的内容树中检索所有已识别的标签

Unmarshaller unmarshaller = getJaxbContext(p.getName()).createUnmarshaller();

    unmarshaller.setSchema(getJaxbSchema(p.getName(), getJaxbContext(p.getName())));
//p is the JAXB package

    Object o = unmarshaller.unmarshal(in); // the input stream of xml

    if(o instanceof JAXBElement){
        o = ((JAXBElement)o).getValue();
    }

例如,如果下面看到的xml是输入流,我想获得像这样的字符串列表[“parentTag”,“childTag1”,“childTag2”,“childTag3”]

<parentTag>
  <childTag1>
    <childTag2>
    </childTag2>
  </childTag1>
  <childTag3/>
</parentTag>

1 个答案:

答案 0 :(得分:0)

您可以使用getElementsByTagName("*")

NodeList nodeList = doc.getElementsByTagName("*");
for (int i=0; i<list.getLength(); i++) {
     // Get element
     Element element = (Element) list.item(i);
     // element.getNodeName() is the tag name
}