0

在我的XML文件中使用不同的父節點我有這樣兩個或多個父節點來解析XML: -如何在安卓

//父節點比薩餅 //屬性1素食比薩
//父節點漢堡
//屬性1素食漢堡,

每當用戶點擊比薩餅listview項目,然後用戶應該能夠查看其他活動的唯一的比薩餅項目清單listview。我知道如何調用下一個活動等等,但我想知道如何在我的java類中使用不同的父節點,具體來說,我需要在我的java類中做什麼更改,請參閱此鏈接,我正在使用本教程,但在這裏他們只使用一個父節點歌曲,但我想添加更多,並且我已經添加到了我的xml文件中,但不知道我需要在java類中做什麼更改。

+0

,我建議你嘗試在一個更可讀的方式格式化你的問題。另外,如果您可以提供一個示例xml文件(最好是一個簡單的基礎知識,以便我們可以輕鬆理解您的問題),這將有所幫助。 –

+0

對於不同的專利節點上,您只要按照這個例子: http://stackoverflow.com/questions/8782210/java-dom-xml-parsing-how-to-walk-through-multiple-node-levels – Lokesh

+0

我已更改請閱讀並恢復我... – user1350766

回答

0
carrier.xml ile contains below xml contents 
<?xml version="1.0" encoding="utf-8"?> 
<carrier> 
    <vehicle> 
     <vehicle 
      cid="1" 
      cname="TAXI" /> 
     <vehivle 
      cid="0" 
      cname="AUTO" /> 
    </vehicle> 

// In your code 
XmlPullParser xpp=null; 
int eventType = 0; 
XmlPullParserFactory factory =null; 
BufferedReader bufr=null; 
StringBuilder total =""; 
    try{   
    bufr = new BufferedReader(new FileReader("/carrier.xml")); 
    total = new StringBuilder(); 
    String line=""; 
    while ((line = bufr.readLine()) != null) 
    {  
    total.append(line); 
    }      
    factory = XmlPullParserFactory.newInstance(); 
    factory.setNamespaceAware(true); 
    xpp = factory.newPullParser(); 
    xpp.setInput(new StringReader(new String(total)));     
    eventType = xpp.getEventType();    
    }catch(XmlPullParserException e){ 
    // Log.v("xmlpullparser"," "+e); 
    e.printStackTrace(); 
    }catch(IOException ie){ 
    // Log.v("IOException"," "+ie); 
    ie.printStackTrace(); 
    } 


    try{ 
    while (eventType != XmlPullParser.END_DOCUMENT){      
    if(eventType == XmlPullParser.START_TAG){ 
    String Scid="",Scname=""; 
    int acount=xpp.getAttributeCount();    
    if(acount!=-1){ 
    for(int x=0;x<acount;x++){            
         if(xpp.getAttributeName(x).equalsIgnoreCase("cid")){ 
          Scid=xpp.getAttributeValue(x);                     
         }if(xpp.getAttributeName(x).equals("cname")){ 
          Scname=xpp.getAttributeValue(x); 
         } 
        }    
    } 
    }  
    eventType = xpp.next(); 
    }        
    }catch(Exception e){   
      e.printStackTrace(); 
    } 

After this you can use the Scid Scname etc in your code as per your convenience 
+0

meher,像這裏你只使用一個父節點,但我需要使用多個父節點,這是不同的,像這樣: - 車輛,運輸(父節點) – user1350766

+0

嗨,在這裏xml pull解析器將讀取所有具有相同名稱或不同名稱的開始標記我已經指定了像cid和cname這樣的屬性字符串名稱,而不是開始標記字符串名稱。如果您添加日誌並通過在字符串中讀取來打印開始標記名稱,會看到所有的開始節點。希望我對你很清楚。 – Meher