Android XML Parsing using DOM Parser Example Code

XML Parsing using DOM Parser

We can parse the xml record by dom parser too. It can be utilized to make and parse the xml record.

Advantage of DOM Parser over SAX

It can be utilized to make and parse the xml record both yet SAX parser must be utilized to parse the xml document.

Disadvantage of DOM Parser over SAX

It expends more memory than SAX.

Disadvantage of DOM Parser over SAX

It expends more memory than SAX.

Example of android DOM Xml parsing

activity_main.xml

Drag the one textview from the pallete. Now the activity_main.xml file will look like this:

File: activity_main.xml
<RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity" >  
  
    <TextView  
        android:id="@+id/textView1"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignParentLeft="true"  
        android:layout_alignParentTop="true"  
        android:layout_marginLeft="75dp"  
        android:layout_marginTop="46dp"  
        android:text="TextView" />  
  
</RelativeLayout>  

xml document

File: file.xml
  1. <?xml version="1.0"?>  
  2. <records>  
  3. <employee>  
  4. <name>Sachin Kumar</name>  
  5. <salary>50000</salary>  
  6. </employee>  
  7. <employee>  
  8. <name>Rahul Kumar</name>  
  9. <salary>60000</salary>  
  10. </employee>  
  11. <employee>  
  12. <name>John Mike</name>  
  13. <salary>70000</salary>  
  14. </employee>  
  15. </records>  

Activity class

File: MainActivity.java
package com.dheeruapps.domxmlparsing;  
import java.io.InputStream;  
  
import javax.xml.parsers.DocumentBuilder;  
import javax.xml.parsers.DocumentBuilderFactory;  
import org.w3c.dom.Document;  
import org.w3c.dom.Element;  
import org.w3c.dom.Node;  
import org.w3c.dom.NodeList;  
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.TextView;  
  
public class MainActivity extends Activity {  
TextView tv1;  
  
@Override  
public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState);  
setContentView(R.layout.activity_main);  
tv1=(TextView)findViewById(R.id.textView1);  
try {  
InputStream is = getAssets().open("file.xml");  
  
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();  
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();  
Document doc = dBuilder.parse(is);  
  
Element element=doc.getDocumentElement();  
element.normalize();  
  
NodeList nList = doc.getElementsByTagName("employee");  
for (int i=0; i<nList.getLength(); i++) {  
  
Node node = nList.item(i);  
if (node.getNodeType() == Node.ELEMENT_NODE) {  
Element element2 = (Element) node;  
tv1.setText(tv1.getText()+"\nName : " + getValue("name", element2)+"\n");  
tv1.setText(tv1.getText()+"Salary : " + getValue("salary", element2)+"\n");  
tv1.setText(tv1.getText()+"-----------------------");  
}  
}//end of for loop  
  
catch (Exception e) {e.printStackTrace();}  
  
}  
private static String getValue(String tag, Element element) {  
NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();  
Node node = (Node) nodeList.item(0);  
return node.getNodeValue();  
}  
  
}  

Output:




0 comments:

Post a Comment

My Instagram