edison_cool911 发表于 2013-2-4 19:52:44

DOM方式解析xml文件2(解析本地xml)

这个与1的方法唯一不同的就是传递InputSource的参数:
上代码:
1.DomParseXml.java
package cn.com;import java.io.File;import java.io.StringReader;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.InputSource;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;public class DomParseXml extends Activity implements OnClickListener {File fl;ListView lv;ArrayAdapter<String> adapter;private EditText et;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Button bt = (Button) findViewById(R.id.bt);bt.setOnClickListener(this);et = (EditText) findViewById(R.id.et);}@Overridepublic void onClick(View agr0) {String[] data = null;Node nRoot = root("root").item(0);// 获得孩子结点NodeList child = nRoot.getChildNodes();// 获得子节点的个数 int childSize = child.getLength();System.out.println("**********childSize************" + childSize);data = new String;for (int i = 0; i < childSize; i++) {// 第一个子节点,cityNode nChild = child.item(i);// 获得子节点if (nChild.hasAttributes()) {// 获得节点属性data = nChild.getAttributes().getNamedItem("id").getNodeValue();System.out.println("**********************" + data);}}setTitle(et.getText().toString()); // 显示查询的城市}private NodeList root(final String str) {NodeList root = null;try {String xml = "<root><demo id='73'><name>MjAxMMrAveexrQ==</name><type>0+nA1g==</type><demoTitle>MjAxMMrAveexrQ==</demoTitle><size></size><version>djEuMA==</version><releaseDate>MjAxMC0wNi0yNSAxNjozMTozOC4w</releaseDate><language></language><releaseFunction>uabE3Mu1w/c=</releaseFunction><releaseDetail></releaseDetail><picRoot><pic id='133' type='jpg' order='1'></pic><pic id='134' type='jpg' order='1'></pic></picRoot><videoRoot></videoRoot></demo><demo id='74'><name>y66yqLutwMg=</name><type>0+nA1g==</type><demoTitle>y66yqLutwMg=</demoTitle><size></size><version>djEuMA==</version><releaseDate>MjAxMC0wNi0yNSAxNjozMToyMy4w</releaseDate><language></language><releaseFunction>uabE3Mu1w/c=</releaseFunction><releaseDetail></releaseDetail><picRoot><pic id='135' type='jpg' order='1'></pic><pic id='136' type='jpg' order='1'></pic></picRoot><videoRoot></videoRoot></demo><demo id='75'><name>t++7y8340MLOxQ==</name><type>0+nA1g==</type><demoTitle>t++7y8340MLOxQ==</demoTitle><size></size><version>djEuMA==</version><releaseDate>MjAxMC0wNi0yNSAxNjozNzowMC4w</releaseDate><language></language><releaseFunction>uabE3Mu1w/c=</releaseFunction><releaseDetail></releaseDetail><picRoot><pic id='137' type='jpg' order='1'></pic><pic id='138' type='jpg' order='1'></pic></picRoot><videoRoot></videoRoot></demo><demo id='76'><name>svrGt8P7s8Y=</name><type>0+nA1g==</type><demoTitle>svrGt7HqzOI=</demoTitle><size>Mjk4MzU3Nw==</size><version>djEuMA==</version><releaseDate>MjAxMC0wNi0zMCAxNTo1MTo0MS4w</releaseDate><language></language><releaseFunction>uabE3Mu1w/c=</releaseFunction><releaseDetail>svrGt8/qz7jLtcP3</releaseDetail><picRoot><pic id='139' type='jpg' order='1'></pic><pic id='140' type='jpg' order='1'></pic></picRoot><videoRoot><video id='68' type='flv' order='0'>0d3KvrDmw/uzxg==</video></videoRoot></demo><demo id='77'><name>svrGt8P7s8Y=</name><type>0+nA1g==</type><demoTitle>svrGt7HqzOI=</demoTitle><size></size><version>djEuMA==</version><releaseDate>MjAxMC0wNy0wMSAxMzo0NTo0MS4w</releaseDate><language></language><releaseFunction>uabE3Mu1w/c=</releaseFunction><releaseDetail></releaseDetail><picRoot><pic id='141' type='png' order='1'></pic><pic id='142' type='png' order='1'></pic></picRoot><videoRoot><video id='69' type='flv' order='0'>0d3KvrDmw/uzxg==</video></videoRoot></demo></root>";// 创建一个新的字符串StringReader read = new StringReader(xml);InputSource is = new InputSource(read);DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder dom = factory.newDocumentBuilder();Document doc = dom.parse(is);root = doc.getElementsByTagName(str);} catch (Exception e) {e.printStackTrace();}return root;}}
2.main.xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TextView android:layout_width="fill_parent"android:layout_height="wrap_content" android:text="@string/hello" /><EditText android:text="" android:id="@+id/et"android:layout_width="150dp" android:layout_height="wrap_content"></EditText><Button android:text="button" android:id="@+id/bt"android:layout_width="wrap_content" android:layout_height="wrap_content"></Button></LinearLayout>
页: [1]
查看完整版本: DOM方式解析xml文件2(解析本地xml)