XML解析

我們先來了解下XML:

什麼是 XML呢?簡單來說可以總結爲下面幾點:

XML 指可擴展標記語言(EXtensible Markup Language)
XML 的設計宗旨是傳輸數據
XML 標籤沒有被預定義。您需要自行定義標籤。

XML 是 W3C 的推薦標準

主要是應用Web前端開發的許多方面,常用語簡化數據的存儲和共享。

 每種語言都有自己的語法規則,XML也不例外,XML的語法是:所有XML的元素都必須有關閉標籤

XML 標籤對大小寫敏感,必須正確地嵌套

XML規則:

  • 新特性應該基於 HTML、CSS、DOM 以及 JavaScript。
  • 減少對外部插件的需求(比如 Flash)
  • 更優秀的錯誤處理
  • 更多取代腳本的標記
  • HTML5 應該獨立於設備
  • 開發進程應對公衆透明

新特性

HTML中的一些有趣的新特性:

  • 用於繪畫的 canvas 元素
  • 用於媒介回放的 video 和 audio 元素
  • 對本地離線存儲的更好的支持
  • 新的特殊內容元素,比如 article、footer、header、nav、section
  • 新的表單控件,比如 calendar、date、time、email、url、search


要寫的內容:
<?xml version="1.0" encoding="UTF-8"?>
<books>
    <!--  這本書一般般  -->
<book lang="zh" >
   <isbn>ABC-135-4BC</isbn>
   <name>十萬個爲什麼</name>
   <price>80.00</price> 
   <author> &quot;匿 &lt;&gt; 名&quot; </author>
   <description>
       <![CDATA[
       這是一本好書:
       1.  價錢 < 平均價錢
       2.  鱷魚爲什麼吞石塊?
鱷魚的胃很柔軟,它要藉助石塊來磨碎食物中的骨頭和硬物。鱷魚吞食的石塊重量約爲其體重的1%。
       3.  海魚爲什麼不鹹?
海洋魚類具有很強的排鹽能力,它們除了從腎排掉一小部分鹽外,還有專門的排鹽器官,即位於鰓片中的“泌氯細胞”。
       4.  水果爲什麼能解酒?
水果裏含有機酸,而酒裏的主要成分是乙醇,有機酸能與乙酸相互作用而形成酯類物質從而達到解酒的目的。
       5.  含羞草爲什麼會“害羞”?
含羞草的葉枕裏含有充足的水分,有外物觸到葉子時,葉枕中的水流向兩邊,葉枕癟了,葉子就垂下來了。
       ]]>
   </description>
</book>
<book lang="zh" >
   <isbn>ABC-145-4BC</isbn>
   <name>愛你一萬年</name>
   <price>180.00</price>
   <author>匿名</author>
</book>
</books>


解析文件的代碼:

package cnte.du.android_xml;


import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;


import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetManager;
import android.util.Log;
import android.view.Menu;
import android.view.View;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


/**
* 監聽
* @param view
*/
public void doClick(View view){
switch (view.getId()) {
case R.id.button1:
try {
parseBooksXml();
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}

/**
* 解析圖書xml文檔      assets/books.xml
*/
private void parseBooksXml() throws Exception{
//讀取assets目錄下的books.xml文檔
AssetManager assetManager = getAssets();
InputStream is = assetManager.open("books.xml");
//1. 獲取Document對象
SAXReader reader = new SAXReader();
Document document = reader.read(is);
//2. 獲取根節點
Element root = document.getRootElement();
//獲取root下的所有book標籤
List<Element> books = root.elements();
//遍歷
for(Element e : books){
//e代表一個book標籤  解析並打印子標籤的內容
Iterator<Element> ite = e.elementIterator();
while(ite.hasNext()){
Element childElement = ite.next();
Log.i("info", "標籤名:"+childElement.getName()+"  標籤內容:"+childElement.getTextTrim());
}
}
}
}


學藝不精,有不對的請多多指點迷津。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章