各位专家请问,如果一个XML文件不是固定的,事先不知道他的叶子和节点叫什么有多少,请问如何解析完全?

解决方案 »

  1.   

    就是你也不知道结构有多深,叶子有多少,只知道有个XML文件,需要把它遍历出来
      

  2.   

    很简单,你只要写一个遍历的方法就可以了,这个方法的入口可以是一个arraylist,在第一次遍历的时候把你要遍历的xml文档的根节点加到这个arraylist里,然后依次递归该arraylist。你可以参考我以前的一个帖子里的做法
      

  3.   

    比如说你要解析一个名为calendar.xml的文件,把其中的每个叶子节点的名称和内容打印出来,程序如下:
    public static void main(String[] args) {
    SAXReader saxReader = new SAXReader();

    Document document = null;
    try {
    document = saxReader.read(new File("calendar.xml"));
    } catch (DocumentException e) {
    e.printStackTrace();
    }

    Element root = document.getRootElement();
    printElement(root);
    }

    public static void printElement(Element element) {
    List childList = element.elements();

    if (childList.size() != 0) {
    for (Iterator it = childList.iterator(); it.hasNext(); ) {
    Element child = (Element)it.next();

    printElement(child);
    }
    } else {
    System.out.println(element.getName() + " " + element.getText());
    }