2016-04-30 67 views
0

我了,这里是我的XML在线XML解析器元素

<XMLFILE> 
<PublishTime>2016-04-30 15:03:40</PublishTime> 

<Days> 
    <day> 
     <Name>Day 1</Name> 

     <absentPeople> 
      <Absent> 
       <Description>Nothing</Description> 
       <FullName>Jack Sparrow</FullName> 
      </Absent> 
     </absentPeople> 

    <day> 
     <Name>Day 2</Name> 

     <absentPeople> 
      <Absent> 
       <Description>Nothing</Description> 
       <FullName>Nobody</FullName> 
      </Absent> 
     </absentPeople> 

</Days> 

我可以读的日子所有的名字,有人可以帮我看没有人的名字吗?要阅读我使用此代码的名称:

Textview.setText(textview.getText()+“Naam:” + getNode(“Name”,eElement)+“\ n”+“\ n”+“\ n“+”\ n“);

public class MainActivity extends Activity { 
// Declare variables 
TextView textview; 
NodeList nodelist; 
ProgressDialog pDialog; 
// Insert image URL 
String URL = "url of xml"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Get the view from activity_main.xml 
    setContentView(R.layout.activity_main); 
    // Locate a TextView in your activity_main.xml layout 
    textview = (TextView) findViewById(R.id.text); 
    // Execute DownloadXML AsyncTask 
    new DownloadXML().execute(URL); 
} 

// DownloadXML AsyncTask 
private class DownloadXML extends AsyncTask<String, Void, Void> { 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // Create a progressbar 
     pDialog = new ProgressDialog(MainActivity.this); 
     // Set progressbar title 
     pDialog.setTitle("Android Simple XML Parsing using DOM Tutorial"); 
     // Set progressbar message 
     pDialog.setMessage("Loading..."); 
     pDialog.setIndeterminate(false); 
     // Show progressbar 
     pDialog.show(); 
    } 

    @Override 
    protected Void doInBackground(String... Url) { 
     try { 
      URL url = new URL(Url[0]); 
      DocumentBuilderFactory dbf = DocumentBuilderFactory 
        .newInstance(); 
      DocumentBuilder db = dbf.newDocumentBuilder(); 
      // Download the XML file 
      Document doc = db.parse(new InputSource(url.openStream())); 
      doc.getDocumentElement().normalize(); 
      // Locate the Tag Name 
      nodelist = doc.getElementsByTagName("day"); 


     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 
     return null; 

    } 

    @Override 
    protected void onPostExecute(Void args) { 

     for (int temp = 0; temp < nodelist.getLength(); temp++) { 
      Node nNode = nodelist.item(temp); 
      if (nNode.getNodeType() == Node.ELEMENT_NODE) { 
       Element eElement = (Element) nNode; 

       textview.setText(textview.getText() + "Naam : " 
         + getNode("Name", eElement) + "\n" + "\n" + "\n" 
         + "\n"); 

      } 
     } 
     // Close progressbar 
     pDialog.dismiss(); 
    } 
} 

// getNode function 
private static String getNode(String sTag, Element eElement) { 
    NodeList nlList = eElement.getElementsByTagName(sTag).item(0) 
      .getChildNodes(); 
    Node nValue = (Node) nlList.item(0); 
    return nValue.getNodeValue(); 
} 

}

感谢反正。

回答

0

你已经知道如何。

当您的<day>元素位于eElement变量中时,您正在使用eElement.getElementsByTagName("Name")来查找<Name>标记。

同样,你可以做eElement.getElementsByTagName("Absent")找到所有的后代<Absent>标签,重复它们,然后打电话getNode("FullName", ...)