安卓xml怎麼這么重要
『壹』 安卓開發要學XML語言
大部分android應用使用xml配置布局,學習簡單的語法就夠了。但是作為一種通用的數據存儲和交換技術,建議還是學習下相關的生成和解習api,只有好處沒有壞處。
『貳』 XML的重要性
XML的重要性
為什麼XML很重要?
為什麼XML很重要?在Web上一條很重要的原則是:內容是一個網站最為首要的東西。但不幸的是,內容總是同如何將他們顯示出來這個方面聯系在一起的。你在瀏覽網頁的時候,有多少次看到一個小小的標簽,上面寫著「最好在800*600解析度下瀏覽本網站」呢?數不勝數吧!XML將有助於解決這個問題。因為在XML中,網站建設者不再是指定在網頁的什麼地方顯示什麼東西,他們需要做的是定義好一個文檔的結構。例如,你需要定義的是文檔的標題,作者,一系列相關鏈接等等。任何裝備有XML 瀏覽器的設備??一個掌上電腦,或者是電視機頂盒,或者是一個高性能的工作站等等??就能夠把XML文檔的內容根據各個設備的顯示特性顯示出來。或許XML最強的特性,在於其內在的可擴展性。任何的公司和組織都能夠擴展XML 來實現新的應用。現在在互聯網上幾乎每天都有關於XML的應用方案的提出。一些基於XML的語言www.diannao114.cn已經開始被使用,像微軟的頻道定義格式??還有一些正在被開發之中,包括Resource Definition Format(資源定義格式)和Open Software Description(開放式軟體描敘)等等。XML還很有可能成為數據和文檔交換機制的標准。例如,可以用XML來實現在Internet上不同資料庫之間的信息交換。到現在為止,要准確的說明XML的公用似乎還為時過早。但是它所帶來的可能性是無限的,或許這就是為什麼XML能夠在其初期就能夠如此引人關注的原因吧。
什麼是XML?列舉一下你所了解的XML技術及其應用
什麼是XML?列舉一下你所了解的XML技術及其應用
答:XML即可擴展標記語言。eXtensibleMarkupLanguage.標記是指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種信息的文章等。如何定義這些標記www.diannao114.cn,即可以選擇國際通用的標記語言,比如HTML,也可以使用象XML這樣由相關人士自由決定的標記語言,這就是語言的可擴展性。XML是從SGML中簡化修改出來的。它主要用到的有XML、XSL和XPath等。
Android 創建與解析XML(一)—— 概述Android 創建與解析XML(一)—— 概述
Android 是最常用的智能手機平台,XML 是數據交換的標准媒介,Android 中可以使用標準的XML生成器、解析器、轉換器 API,對 XML 進行解析和轉換。
XML,相關有DOM、SAX、JDOM、DOM4J、Xerces、JAXP等一堆概念,但是很多人總是會弄混他們之間的關系,這對我們理解XML文件的創建和解析很不利。要挑選一個適合在Android平台上使用的XML解析方案,我們還是得先把這些概念釐清。
XML基本概念DOM(Document Object Model,文檔對象模型)和SAX(Simple API for XML,簡單XML應用介面),是JAXP(java API for XML Processing,Java XML處理的應用介面)定義的2種不同的對XML文檔進行分析、處理的方法。
DOM方法是用標准對象模型表示 XML 文檔;SAX方法則使用事件模型來處理程序來處理XML。
JAXP完成了對SAX、DOM的包裝,它向應用程序提供針對DOM的DocumentBuilderFactory、 DocumentBuilder;以及針對SAX的SAXParserFactory、SAXParser抽象工廠類。在Jave SE中JAXP對應javax.xml.parsers包,DOM對應org.w3c.dom,SAX對應org.xml.sax。
Xerces首先繼承並實現了javax.xml.parser包內的SAXParser、SAXParserFactory、DocumentBuilder、DocumentBuilderFactory等抽象類,並提供了JAXP中所定義的DOM、SAX(以及StAX,後面會介紹)這些XML解析方法的實現和相應的Parser。JDOM和DOM4J,是因為有人覺得W3C的DOM標准API太過難用而著手開發的替代API,它們和JAXP一樣都是對DOM、SAX的封裝,不過JDOM、DOM4J做了更多的事情,相當於上面提到JAXP介面+Xerces DOM實現部分。JDOM並沒有自己開發Parser,所以還是需要利用Xerces的Parser部分,而DOM4J自帶一個名為Alfred2的Parser,當然也可以使用Xerces的Parser。看起來JAXP具備更好的可移植性,即我們可以通過修改配置文件切換不同的DOM實現和SAX、DOM Parser,JDOM、DOM4J雖然也可以切換Parser,但是DOM實現是無法切換的。(參考: Java XML API 漫談 和 JAXP全面介紹)
XML創建與解析
XML創建主要四種方式:Dom、Sax、Pull、Dom4j
XML解析主要四種方式:Dom、Sax、Pull、Dom4j
其中,利用Dom、Sax、Pull、Dom4j創建的標准XML格式文件,可以由任何一種Dom、Sax、Pull、Dom4j解析方式進行解析。
Android中解析XML
DOM解析器,是通過將XML文檔解析成樹狀模型並將其放入內存來完成解析工作的,然後對文檔的操作都是在這個樹狀模型上完成的。這個在內存中的文檔樹將是文檔實際大小的幾倍。這樣做的好處是結構清晰、操作方便,而帶來的麻煩就是極其耗費系統資源。SAX解析器,正好克服了DOM的缺點,分析能夠立即開始,而不是等待所有的數據被處理。而且,由於應用程序只是在讀取數據時檢查數據,因此不需要將數據存儲在內存中,這對於大型文檔來說是個巨大的優點。事實上,應用程序甚至不必解析整個文檔,它可以在某個條件得到滿足時停止解析。
DOM與SAX比較
下面的表格列出了SAX和DOM在一些方面的對照:
SAXDOM順序讀入文檔並產生相應事件,可以處理任何大小的XML文檔在內存中創建文檔樹,不適於處理大型XML文檔。只能對文檔按順序解析一遍,不支持對文檔的隨意訪問。可以隨意訪問文檔樹的任何部分,沒有次數限制。只能讀取XML文檔內容,而不能修改可以隨意修改文檔樹,從而修改XML文檔。開發上比較復雜,需要自己來實現事件處理器。易於理解,易於開發。對開發人員而言更靈活,可以用SAX創建自己的XML對象模型。已經在DOM基礎之上創建好了文檔樹。通過對SAX和DOM的分析,它們各有自己的不同應用領域:
SAX適於處理下面的問題:對大型文檔進行處理。只需要文檔的部分內容,或者只需要從文檔中得到特定信息。想創建自己的對象模型的時候。DOM適於處理下面的問題:
需要對文檔進行修改需要隨機對文檔進行訪問,例如XSLT解析器。
DOM和SAX的應用場景1、數據修改:如果打算對數據作出更改並將它輸出為 XML,那麼在大多數情況下,DOM 是適當的選擇。並不是說使用 SAX 就不能更改數據,但是該過程要復雜得多,因為您必須對數據的一份拷貝而不是對數據本身作出更改。2、數據容量: 對於大型文件,SAX 是更好的選擇。3、數據使用:如果只有數據中的少量部分會被使用,那麼使用 SAX 來將該部分數據提取到應用程序中可能更好。 另一方面,如果您知道自己以後會回頭引用已處理過的大量信息,那麼 SAX 也許不是恰當的選擇。4、速度要求: SAX 實現通常要比 DOM 實現速度更快。基於上面的分析,在基於Android系統的內存和CPU資源比較有限的手持設備上,只要我們不需要修改XML數據或者隨機的訪問XML數據,SAX盡管可能需要更多的編碼工作,但是為了更小的內存和CPU消耗,還是值得的。另外,Android SDK中已經包含了JAXP對應的javax.xml.parsers包,SAX對應org.xml.sax,DOM對應的org.w3c.dom包,加上Android還提供了android.sax這樣的包來方便SAX Handle的開發,基於JAXP和SAX這樣的標准方法來開發不僅復雜度不高,即使出現問題在討論組中尋求解決方案也是比較容易的。(參考: 使用 SAX 處理 XML 文檔 和 DOM SAX JAXP DOM4J JDOM xerces解析器)Android中解析XML實現
基於上面的分析,採用JAXP+SAX的方案是我比較看好的。我們首先需要又一個SAXParserFactory的實例,然後從工廠中得到一個SAXParser實例,進而獲取一個XMLReader;接下來新建一個Handler類繼承自SAX Helpler的DefaultHandler,並實現startDocument()、startElement()、endElement()以及endDocument()等方法,並把這個Handler作為XMLReader的Content Handler;最後以帶解析的XML文檔為參數調用XMLReader的parse方法即可。具體的代碼參考:Android 上使用 XML 和 Android 3.0 平台上創建和解析 XML
1、Android系統中的DOM和SAX實現Android SDK中包含了JAXP對應javax.xml.parsers包,SAX對應的org.xml.sax,DOM對應的org.w3c.dom包,所以我們就已經有了XML解析所需的JAXP——對SAX和DOM的封裝(抽象類)以及SAX和DOM介面類,但是對於JAXP抽象類的實現,以及DOM和SAX介面類的實現在哪裡呢?是和Java SE 5.0一樣用了Xerces嗎? 不!通過查看Android 1.5的源代碼,我看到這部分的代碼來自Apache Harmony這個開源的Java SE實現,位於./dalvik/libcore/xml/src/main/java/org/apache/harmony/xml目錄。這里包含有一個完整的DOM實現(dom目錄),對於javax.xml.parser下的抽象類的實現(parser目錄),以及對於SAX介面類的實現(除此以外還包括對XMLPullParser介面的實現)。2、XmlPull 和 KXML2XmlPull解析器,提供了資源有限的環境(如J2ME)應用使用的XML解析API,XPP提供了非常簡單的介面——包含一個介面、一個異常、一個建立解析器的factory。它採用了類似JAXP的工廠模式,把介面設計和實現分離,KXML2就是一個為J2ME環境優化的一個實現。在Android SDK中,已經包含了XmlPull(org.xmlpull.v1包)以及它的一個AddOn——SAX2 Driver——它使得我們可以通過SAX2的API來操縱XmlPull Parser。另外,通過sourcecode,我們可以看到Android SDK中的XmlPull的實現是KXML2,位於./dalvik/libcore/xml/src/main/java/org/kxml2目錄。Apache Harmony的目錄中同樣有一個ExpatPullParser類實現了XMLPullParser介面,但是卻沒有XmlSerializer介面的實現,所以只能說Android中的Harmony也部分實現了XmlPull API。XmlPull+KXML2是下一步我要實踐的方案,到時候還得學習一下如何「公平」的比較兩者的性能。3、StAX盡管Android中還沒有提供相應的支持,但是Streaming API for XML (StAX) 作為用Java語言處理 XML的最新標准,無論從性能還是可用性上都有出色的表現。它不僅提供了一個快捷、易用、佔用內存少的 XML 解析器,它還提供了過濾器介面,允許程序員向應用程序業務邏輯隱藏不需要的文檔細節。感興趣的朋友可以看一看下面的文章。
使用 StAX 解析 XML,第 1 部分: Streaming API for XML (StAX) 簡介
使用 StAX 解析 XML,第 2 部分: 拉式解析和事件
使用 StAX 解析 XML,第 3 部分: 使用定製事件和編寫 XML
參考推薦:
Android中解析XML數據
android解析XML總結(SAX、Pull、Dom三種方式)
Android 解析XML文件的三種方式 DOM,SAX,PULL
android解析xml文件的方式(推薦,共三篇)
Android 上使用 XML
Android 上使用 XML 和 JSON
Android 3.0 平台上創建和解析 XML
Android XML解析學習——創建XML(共六篇,推薦)
常見xml的屬性大全
首先按照程序的目錄結構大致分析:
res/layout/ 這個目錄存放的就是布局用的xml文件,一般默認為main.xml
res/values/ 這個目錄存放的是一堆常量的xml文件
res/drawable/ 存放的是一些圖片什麼的,當然圖標也在這里
下面主要對layout下的xml文件做個介紹,順便也把布局的方法總結一下:
·文件的開頭
這是在說明xml版本及字元編碼
·緊接著到了關鍵的部分:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/ android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
其中開頭的"LinearLayout"是布局的方式,可以有很多種,最常用的應該就是Linear了,其他的布局方法等下在後面總結。
接著android:layout_width(height)="wrap_content"是在設置這部分布局的寬高,也可以是絕對值,當然設置為絕對值時要標上單位。
·在 和 就之間可以添加控制項了,比如要添加一個名字為btn的Button控制項,並且Button上顯示的文字是"Test!",可以這樣寫:
<Button id="@+id/btn"
android:text="Test!"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
開頭id後面的就是控制項名稱,在用於添加事件Listener時會用到,而下幾行的android:xxx就是設置控制項的屬性了,這些屬性在Android的文檔中都有,不需要特別去記,一般現查就可以了。
·有一點要說明的是,布局方法可以嵌套,有點像java中的Container,可以非常方便的把界面「堆」出來。
布局方式的簡單說明:
查了Android文檔發現布局確實很多,只列出兩個我自己認為較常用的:
·LinearLayout線性的布局方式,要麼上下,要麼左右的添加控制項,很常用;
·GridView中文翻譯過來是網格布局,控制項按照順序依次填到每個格子里就好了,出來的界面會很整齊,較常用;
具體的幾個布局如下:
@<1>LinearLayout(線性布局)提供了控制項水平垂直排列的模型,同時可以通過設置子控制項的weight布局參數控制各個控制項在布局中的相對大小。水平(vertical)垂直(horizontal)
Android:layout_x/layout_y=」56px」確定控制項位置
@<3>RelativeLayout(相對布局)允許子元素指定他們相對於其它元素或父元素的位置(通過ID指定)。因此,你可以以右對齊,或上下,或置於屏幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在屏幕的中央,那麼相對於這個元素的其它元素將以屏幕中央的相對位置來排列。如果使用XML來指定這個layout,在你定義它之前,被關聯的元素必須定義。
Android:src=http://blog.soso.com/qz.q/」@drawable/」屬性指定所需圖片的文件位置,用ImageView顯示圖片時,也應當用android:src指定要顯示的圖片
@<5>TableLayout(表格布局)以行列的形式管理子控制項,每一行為一個TableRow的對象,TableRow也可以添加子控制項
android:collapseColumns=「n」隱藏TableLayout裡面的TableRow的列n
android:stretchColumns=「n」 設置列n為可延伸的列
android:shrinkColumns=「n」 設置列n為可收縮的列
Android:src=http://blog.soso.com/qz.q/」@drawable/」屬性指定所需圖片的文件位置,用ImageView顯示圖片時,也應當用android:src指定要顯示的圖片。
XML的國際化問題
XML的國際化問題XML的出現,使得網站的國際化變得空前的容易。和Java一樣,XML也是使用的Unicode(ISO 10646)作為其編碼標准,這是的網站建設者們能夠很容易的寫出各國的文字和符號,而不必過多的擔心亂碼的問題。Unicode 包括了所有的ASCII字元,以及簡體中文,繁體中文,日文,韓文,希臘文等等。在XML中甚至可以允許有混合的編碼出現,例如,一個顯示中文的網頁可以引用一個德文的單詞,而不必擔心出現亂碼。開發者不需要專門為了Unicode而在去學習什麼新的東西,網頁一經寫好後,在客戶端的瀏覽器中顯示時,瀏覽器會自動的使用合適的字元集把網頁顯示出來。
XML對於超鏈接有那些改進?
XML對於超鏈接有那些改進?XML對HTML的超鏈接做了一些改進,增加了一些特性,包括能夠建立「智能」鏈接,可以省去不少手工編寫JavsScript的麻煩。在XML中,鏈接是作為一個對象出現的,可以向操作任何的其它對象那樣,對超鏈接進行方便的操作。原來的關於鏈接的的標准??XLL,XML鏈接語言(XML Linking Language)現在被分為兩種新的標准:Xpointer和XLink.Xpointer:在HTML中,可以通過書簽鏈接到一個頁面的任何地方。通過Xpointer你將能夠「定址到(address to)」(而不是「鏈接到(link to)」)其他頁面的任何一部分的內容。顯然的,這對於在文檔引用方面是非常有用的。Xlink:當用戶點擊了HTML中的一個超鏈接後,當前的網頁被一個新的網頁所替代。Xlink能夠讓Web開發者為鏈接這個對象添加一些動作(behaviors)。例如:在現在你必須用JavaScript來實現把鏈接的網頁在一個新的窗口中顯示出來,但Xlink通過給鏈接對象添加了一些行為,實現彈出窗口容易到只是簡單的調用對象的方法而已。其他的一些有用的應用,像彈出的警告對話框,需要用戶做出確認的對話框等等,通過Xlink的對象機制都可以很容易地實現。但現在,我們還都必須求助於腳本編程采能夠解決。對於一系列相關的鏈接,XML能夠讓Web開發者創建擴展鏈接(Extended Links)來方便的實現像www.webring.com這樣的網站或網頁,把一些相同主題的網頁自動的鏈接在一起。現在實現這個功能需要使用到CGI腳本,但是擴展鏈接將提供標準的方法來建立資源之間的關聯。現在還有一些問題需要得到進一步的討論,特別是在「行為」機制方面還有一些工作要作。但這並不妨礙在不久的將來,Xpinter和Xlink作為新的標准被廣泛使用。 ;
『叄』 安卓軟體開發中的xml是做什麼的,要如何使用有什麼作用
可擴展標記語言 (Extensible Markup Language, XML) ,用於標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。 XML是標准通用標記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。
作用:XML
可擴展的標識語言XML(Extensible Markup Language)是一種元標注語言,即定義了用於定義其他特定領域有關語義的、結構化的標記語言,這些標記語言將文檔分成許多部件並對這些部件加以標識。XML 文檔定義方式有:DTD (Document Type Definition)和XML Schema。DTD定義了文檔的整體結構以及文檔的語法,應用廣泛並有豐富工具支持。XML Schema用於定義管理信息等更強大、更豐富的特徵。XML能夠更精確地聲明內容,方便跨越多種平台的更有意義的搜索結果。它提供了一種描述結構數據的格式,簡化了網路中數據交換和表示,使得代碼、數據和表示分離,並作為數據交換的標准格式,因此它常被稱為智能數據文檔。
XML技術已經廣泛應用於e-Learning應用系統的開發,大多數的商用e-Learning平台都支持XML標准。一些主要的網路設備製造商,如CISCO、JUNIPER等,生產的網路設備也已提供了對XML的支持,以利於今後基於XML的網路管理。
三、XML在e-Learning管理中的應用
1.兼容現有協議
XML文檔格式的管理信息可以很容易地通過HTTP 協議傳輸,由於HTTP是建立在TCP之上的,故管理數據能夠可靠傳輸。XML還支持訪問XML文檔的標准API,如DOM,SAX,XSLT,Xpath等。
2.統一的管理數據存取格式
XML能夠以靈活有效的方式定義管理信息的結構。以XML格式存儲的數據不僅有良好的內在結構,而且由於它是W3C提出的國際標准,因而受到廣大軟體提供商的支持,易於進行數據交流和開發。現有網路管理標准如TMN、SNMP等的管理信息庫規范決定了網管數據符合層次結構和面向對象原則,這使得以XML格式存儲網管數據也非常自然,易於實現。
3.不同應用系統間數據的共享和交互
只要定義一套描述各項管理數據和管理功能的XML語言,用Schema對這套語言進行規定,並且共享這些數據的系統的XML文檔遵從這些Schema,那麼管理數據和管理功能就可以在多個應用系統之間共享和交互。
4.底層傳輸的數據更具可讀性
網路中傳輸的底層數據因協議不同而編碼規則不同,雖然最終傳輸時都是二進制位流,但是不同的應用協議需要提供不同的轉換機制。這種情況導致管理站在對採用不同協議發送管理信息的被管對象之間進行管理時很難實現兼容。如果協議在數據表示時都採用XML格式進行描述,這樣網路之間傳遞的都是簡單的字元流,可以通過相同的XML解析器進行解析,然後根據不同的XML標記,對數據的不同部分進行區分處理,使底層數據更具可讀性。
『肆』 什麼是xml,什麼android的xml,android的xml文件有什麼用
xml 全名可擴展標記語言。和html文件差不多。
在android中經常來編寫應用的UI界面
列如:
『伍』 android xml解析有什麼作用為什麼學習android要學習xml的解析
將xml的信息讀出來,比如天氣預報,從網上獲取的是xml文件,通過xml解析可以把天氣狀態讀出來 例: <forecast_date data="2009-07-31" /> <condition data="晴" /> <humidity data="濕度: 65%" />(xml文件不全) 可得到 2009-07-31 晴 濕度:65% 還有一作用是保存你的數據,比如做個旅遊網站,你需要把全國各個省、城市名稱寫到xml文件,或者寫成json進行保存,在程序中通過解析讀取調用。
『陸』 安卓為什麼使用xml作為布局文件
顧名思義,布局文件,就是管理Activity中的布局的文件,各種標簽,有各種標簽的作用,比如: LinearLayout:指定線性布局 FrameLayout:指定幀布局 Button:指定按鈕 每種標簽,在官方文檔中都有使用方法。
『柒』 android xml解析有什麼作用為什麼學習android要學習xml的解析
將xml的信息讀出來,比如天氣預報,從網上獲取的是xml文件,通過xml解析可以把天氣狀態讀出來
例:
<forecast_date data="2009-07-31" />
<condition data="晴" />
<humidity data="濕度: 65%" />(xml文件不全)
可得到 2009-07-31 晴 濕度:65%
還有一作用是保存你的數據,比如做個旅遊網站,你需要把全國各個省、城市名稱寫到xml文件,或者寫成json進行保存,在程序中通過解析讀取調用。
『捌』 java 解析xml重要嗎 在工作中用的多嗎 面試時會不會問到
xml在Java編程中還是挺重要的,不過一般的面試官不會問這類的問題,面試官考核的還是看個人的邏輯能力,xml的編程是需要在實際過程中實踐的。
當然不同的面試官問的問題也不一樣,這個不能一概而論。
望採納~~
『玖』 安卓上XML文件是什麼文件,是干什麼用的
http://ke..com/view/159832.htm
參考這個
『拾』 安卓中xml文件建立有什麼要求嗎
安卓對xml的要求不高
代碼基礎是Java語言
配置文件為manifest.xml格式基本上都固定了
但是由於安卓是基於Java語言開發的,很多時候也會涉及到解析構建修改XML之類的操作,譬如說修改軟體的一些屬性:開機啟動之類的,就要去操作manifest.xml了,所以最好還是去了解一下Java的XML相關知識,其實就4種主要的解析方法~