![【移動應用開發(fā)技術】Android中怎么利用DOM解析XML_第1頁](http://file4.renrendoc.com/view/66720cdf32a289809bd9b472bb5e6577/66720cdf32a289809bd9b472bb5e65771.gif)
![【移動應用開發(fā)技術】Android中怎么利用DOM解析XML_第2頁](http://file4.renrendoc.com/view/66720cdf32a289809bd9b472bb5e6577/66720cdf32a289809bd9b472bb5e65772.gif)
![【移動應用開發(fā)技術】Android中怎么利用DOM解析XML_第3頁](http://file4.renrendoc.com/view/66720cdf32a289809bd9b472bb5e6577/66720cdf32a289809bd9b472bb5e65773.gif)
![【移動應用開發(fā)技術】Android中怎么利用DOM解析XML_第4頁](http://file4.renrendoc.com/view/66720cdf32a289809bd9b472bb5e6577/66720cdf32a289809bd9b472bb5e65774.gif)
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【移動應用開發(fā)技術】Android中怎么利用DOM解析XML
一.DOM解析方法介紹二、DOM解析步驟DocumentBuilderFactory
factory
=
DocumentBuilderFactory.newInstance();DocumentBuilder
builder
=
factory.newDocumentBuilder();Document
dom
=
builder.parse(inputStream);
Element
root
=
dom.getDocumentElement();
NodeList
items
=
root.getElementsByTagName("person");
(
i
=
0;
i
<
items.getLength();
i++==
(
j
=
0;
j
<
childNodes.getLength();
j++=
(node.getNodeType()
===三、DOM解析XML代碼<?xml
version="1.0"
encoding="UTF-8"?><persons>
<person
id="23">
<name>liming</name>
<age>30</age>
</person>
<person
id="20">
<name>lixiangmei</name>
<age>25</age>
</person></persons>
<Button
android:id="@+id/dom_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/fab_margin"
android:gravity="center_horizontal"
android:text="@string/DOM"
/><TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello
World!"
/>package
com.zhangmiao.analyzexmldemo;import
org.w3c.dom.Document;import
org.w3c.dom.Element;import
org.w3c.dom.Node;import
org.w3c.dom.NodeList;import
java.io.InputStream;import
java.util.ArrayList;import
java.util.List;import
javax.xml.parsers.DocumentBuilder;import
javax.xml.parsers.DocumentBuilderFactory;/**
*
Created
by
zhangmiao
on
2016/12/14.
*/public
class
AnalyzeDOM
{
public
static
List<Person>
readXML(InputStream
inputStream)
{
List<Person>
persons
=
new
ArrayList<>();
DocumentBuilderFactory
factory
=
DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder
builder
=
factory.newDocumentBuilder();
Document
dom
=
builder.parse(inputStream);
Element
root
=
dom.getDocumentElement();
NodeList
items
=
root.getElementsByTagName("person");
for
(int
i
=
0;
i
<
items.getLength();
i++)
{
Person
person
=
new
Person();
Element
personNode
=
(Element)
items.item(i);
person.setId(new
Integer(personNode.getAttribute("id")));
NodeList
childNodes
=
personNode.getChildNodes();
for
(int
j
=
0;
j
<
childNodes.getLength();
j++)
{
Node
node
=
childNodes.item(j);
if
(node.getNodeType()
==
Node.ELEMENT_NODE)
{
Element
childNode
=
(Element)
node;
if
("name".equals(childNode.getNodeName()))
{
person.setName(childNode.getFirstChild().getNodeValue());
}
else
if
("age".equals(childNode.getNodeName()))
{
person.setAge(new
Short(childNode.getFirstChild().getNodeValue()));
}
}
}
persons.add(person);
}
inputStream.close();
}
catch
(Exception
e)
{
e.printStackTrace();
}
return
persons;
}
}package
com.zhangmiao.analyzexmldemo;import
android.os.Bundle;import
android.support.design.widget.FloatingActionButton;import
android.support.design.widget.Snackbar;import
android.support.v7.app.AppCompatActivity;import
android.support.v7.widget.Toolbar;import
android.util.Log;import
android.view.View;import
android.view.Menu;import
android.view.MenuItem;import
android.widget.Button;import
android.widget.TextView;import
org.xml.sax.InputSource;import
java.io.BufferedWriter;import
java.io.File;import
java.io.FileOutputStream;import
java.io.InputStream;import
java.io.OutputStreamWriter;import
java.io.StringWriter;import
java.util.List;import
javax.xml.parsers.SAXParser;import
javax.xml.parsers.SAXParserFactory;public
class
MainActivity
extends
AppCompatActivity
implements
View.OnClickListener
{
private
static
final
String
TAG
=
"AnalyzeXMLDemo";
private
TextView
mTextView;
private
InputStream
inputStream;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
Log.v(TAG,
"onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar
toolbar
=
(Toolbar)
findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton
fab
=
(FloatingActionButton)
findViewById(R.id.fab);
fab.setOnClickListener(new
View.OnClickListener()
{
@Override
public
void
onClick(View
view)
{
Snackbar.make(view,
"Replace
with
your
own
action",
Snackbar.LENGTH_LONG)
.setAction("Action",
null).show();
}
});
Button
domButton
=
(Button)
findViewById(R.id.dom_button);
mTextView
=
(TextView)
findViewById(R.id.text);
domButton.setOnClickListener(this);
}
@Override
public
void
onClick(View
v)
{
String
result
=
"";
inputStream
=
getResources().openRawResource(R.raw.itcase);
switch
(v.getId())
{case
R.id.dom_button:
result
+=
"
DOM
"
+
"\n";
if
(inputStream
==
null)
{
result
=
"inputStream
is
null";
}
else
{
List<Person>
personList
=
AnalyzeDOM.readXML(inputStream);
if
(personList
!=
null)
{
for
(int
i
=
0;
i
<
personList.size();
i++)
{
String
message
=
"id
=
"
+
personList.get(i).getId()
+
"
,
name
=
"
+
personList.get(i).getName()
+
"
,
age
=
"
+
personList.get(i).getAge()
+
".\n";
result
+=
message;
}
}
}
mTextView.setText(result);
break;default:
break;
}
}
@Override
public
boolean
onCreateOptionsMenu(Menu
m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 華師大版數學八年級上冊12.5《因式分解》(第1課時)聽評課記錄
- 現場服務協議書(2篇)
- 生活小家電代理銷售合同(2篇)
- 粵人版地理七年級上冊《第三節(jié) 聚落的發(fā)展變化》聽課評課記錄7
- 蘇州市公開課蘇教版六年級數學下冊《確定位置》聽評課記錄+教學反思
- 人教版數學八年級上下冊聽評課記錄(全冊)
- 人教版部編歷史八年級上冊《第19課 七七事變與全民族抗戰(zhàn)》聽課評課記錄3
- 五年級上冊數學聽評課記錄《4.3 探索活動:平行四邊形的面積》(18)-北師大版
- 新版華東師大版八年級數學下冊《16分式復習》聽評課記錄15
- 人教版數學七年級下冊第16課時《6.1平方根(第1課時)》聽評課記錄
- 2024時事政治考試題庫(基礎題)
- 2024山西文旅投資集團招聘117人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 小學校本課程教材《趣味數學》
- 干細胞療法推廣方案
- (2024年)電工安全培訓(新編)課件
- mil-std-1916抽樣標準(中文版)
- 《社區(qū)康復》課件-第七章 腦癱患兒的社區(qū)康復實踐
- 城鄉(xiāng)環(huán)衛(wèi)一體化內部管理制度
- 廣匯煤炭清潔煉化有限責任公司1000萬噸年煤炭分級提質綜合利用項目變更環(huán)境影響報告書
- 小學數學六年級解方程練習300題及答案
- 大數據在化工行業(yè)中的應用與創(chuàng)新
評論
0/150
提交評論