Get child Node of another Node, given node name

前端 未结 4 1266
再見小時候
再見小時候 2021-02-11 15:21

I have an XML like this:


  
    1
    Declaration of Human Rights         


        
4条回答
  •  误落风尘
    2021-02-11 16:03

    You should read it recursively, some time ago I had the same question and solve with this code:

    public void proccessMenuNodeList(NodeList nl, JMenuBar menubar) {
        for (int i = 0; i < nl.getLength(); i++) {
            proccessMenuNode(nl.item(i), menubar);
        }
    }
    
    public void proccessMenuNode(Node n, Container parent) {
        if(!n.getNodeName().equals("menu"))
            return;
        Element element = (Element) n;
        String type = element.getAttribute("type");
        String name = element.getAttribute("name");
        if (type.equals("menu")) {
            NodeList nl = element.getChildNodes();
            JMenu menu = new JMenu(name);
    
            for (int i = 0; i < nl.getLength(); i++)
                proccessMenuNode(nl.item(i), menu);
    
            parent.add(menu);
        } else if (type.equals("item")) {
            JMenuItem item = new JMenuItem(name);
            parent.add(item);
        }
    }
    

    Probably you can adapt it for your case.

提交回复
热议问题