0

重複の可能性:
Android での複雑な xml ファイルのトラバース

これで、DOMパーサーを使用してxmlファイルを解析しています。これにより、解析されたドキュメントとしてdom1が提供されます。問題は、この後にUIを作成したいということです.同じロジックが見つからないため、同じことができませ . それの何が問題なのですか??

xml は次のリンクにあります。

http://nchc.dl.sourceforge.net/project/trialxml/options.xml

//this is function is called when i click my button
public void next123(View view){


    Element root=dom1.getDocumentElement();

    NodeList nodes=root.getChildNodes();
    create_Menu(nodes);

}

    public void create_Menu(NodeList nodes){


    for(int i=0;i<nodes.getLength();i++){
    Node node=nodes.item(i);


    if(node instanceof Element){

         Element child = (Element)node;
        String name=getTextValue(child,"Name");
        String typ=child.getAttribute("type");
        if(name!=null){
            z++;
            Log.i(TAG,"Names are:= " +name+ " ->  "+typ +"  ->  "+ z+ "  -> "+ i);  

             NodeList nod=child.getChildNodes();
            Log.i(TAG,"Length  : "+nod.getLength());


            create_Menu(nod);

            Log.i(TAG,"end");


        }
    }

 }
}

この後、UI を作成する必要があります。そのために、ListView と ArrayList の配列を使用して値を格納しています。問題は、ノーを割り当てなければならないことです。あらゆるレベルに、

たとえば、私の配列がtest[]の場合、

test[0]-> main, 

test[1]->1L1,1L2,1L3, 

test[2]->2L1, 

test[3]->2L2 

test[4]->3L1,3L2

xml を参照してください。

4

1 に答える 1

0

例を挙げているだけなので、このようにしてみてください....

DocumentBuilderFactory odbf = DocumentBuilderFactory.newInstance();
       DocumentBuilder odb =  odbf.newDocumentBuilder();
       InputSource is = new InputSource(new StringReader(xml));
       Document odoc = odb.parse(is);
       odoc.getDocumentElement().normalize ();    // normalize text representation
       System.out.println ("Root element of the doc is " + odoc.getDocumentElement().getNodeName());
       NodeList LOP = odoc.getElementsByTagName("locations");
       int totalPersons =LOP.getLength();
       System.out.println("Total nos of locations:"+totalPersons);

       for(int s=0; s<LOP.getLength() ; s++)
       {
           Node FPN =LOP.item(s);
           if(FPN.getNodeType() == Node.ELEMENT_NODE)
                {

           Element latlon = (Element)FPN;                                                                

               NodeList oNameList1 = latlon.getElementsByTagName("featured");                                       
               Element firstNameElement = (Element)oNameList1.item(0);
               NodeList textNList1 = firstNameElement.getChildNodes();
                featuredArr = changeToBoolean(((Node)textNList1.item(0)).getNodeValue().trim());                                    // value taken
               System.out.println("#####The Parsed data#####");
               System.out.println("featured : " + ((Node)textNList1.item(0)).getNodeValue().trim());            
               System.out.println("#####The Parsed data#####");

    }
}
于 2012-08-14T05:41:06.333 に答える