導航:首頁 > 編程語言 > xml編程與應用教程答案

xml編程與應用教程答案

發布時間:2023-12-11 00:35:54

java解析xml的幾種方式哪種最好

(1)DOM解析
DOM是html和xml的應用程序介面(API),以層次結構(類似於樹型)來組織節點和信息片段,映射XML文檔的結構,允許獲取
和操作文檔的任意部分,是W3C的官方標准
【優點】
①允許應用程序對數據和結構做出更改。
②訪問是雙向的,可以在任何時候在樹中上下導航,獲取和操作任意部分的數據。
【缺點】
①通常需要載入整個XML文檔來構造層次結構,消耗資源大。
【解析詳解】
①構建Document對象:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = bdf.newDocumentBuilder();
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(xml文件);
Document doc = bd.parse(is);
②遍歷DOM對象
Document: XML文檔對象,由解析器獲取
NodeList: 節點數組
Node: 節點(包括element、#text)
Element: 元素,可用於獲取屬性參數
(2)SAX(Simple API for XML)解析
流模型中的"推"模型分析方式。通過事件驅動,每發現一個節點就引發一個事件,事件推給事件處理器,通過回調方法
完成解析工作,解析XML文檔的邏輯需要應用程序完成
【優勢】
①不需要等待所有數據都被處理,分析就能立即開始。
②只在讀取數據時檢查數據,不需要保存在內存中。
③可以在某個條件得到滿足時停止解析,不必解析整個文檔。
④效率和性能較高,能解析大於系統內存的文檔。
【缺點】
①需要應用程序自己負責TAG的處理邏輯(例如維護父/子關系等),文檔越復雜程序就越復雜。
②單向導航,無法定位文檔層次,很難同時訪問同一文檔的不同部分數據,不支持XPath。
【原理】
簡單的說就是對文檔進行順序掃描,當掃描到文檔(document)開始與結束、元素(element)開始與結束時通知事件
處理函數(回調函數),進行相應處理,直到文檔結束
【事件處理器類型】
①訪問XML DTD:DTDHandler
②低級訪問解析錯誤:ErrorHandler
③訪問文檔內容:ContextHandler
【DefaultHandler類】
SAX事件處理程序的默認基類,實現了DTDHandler、ErrorHandler、ContextHandler和EntityResolver介面,通常
做法是,繼承該基類,重寫需要的方法,如startDocument()
【創建SAX解析器】
SAXParserFactory saxf = SAXParserFactory.newInstance();
SAXParser sax = saxf.newSAXParser();
註:關於遍歷
①深度優先遍歷(Depthi-First Traserval)
②廣度優先遍歷(Width-First Traserval)
(3)JDOM(Java-based Document Object Model)
Java特定的文檔對象模型。自身不包含解析器,使用SAX
【優點】
①使用具體類而不是介面,簡化了DOM的API。
②大量使用了Java集合類,方便了Java開發人員。
【缺點】
①沒有較好的靈活性。
②性能較差。
(4)DOM4J(Document Object Model for Java)
簡單易用,採用Java集合框架,並完全支持DOM、SAX和JAXP
【優點】
①大量使用了Java集合類,方便Java開發人員,同時提供一些提高性能的替代方法。
②支持XPath。
③有很好的性能。
【缺點】
①大量使用了介面,API較為復雜。
(5)StAX(Streaming API for XML)
流模型中的拉模型分析方式。提供基於指針和基於迭代器兩種方式的支持,JDK1.6新特性
【和推式解析相比的優點】
①在拉式解析中,事件是由解析應用產生的,因此拉式解析中向客戶端提供的是解析規則,而不是解析器。
②同推式解析相比,拉式解析的代碼更簡單,而且不用那麼多庫。
③拉式解析客戶端能夠一次讀取多個XML文件。
④拉式解析允許你過濾XML文件和跳過解析事件。
【簡介】
StAX API的實現是使用了Java Web服務開發(JWSDP)1.6,並結合了Sun Java流式XML分析器(SJSXP)-它位於
javax.xml.stream包中。XMLStreamReader介面用於分析一個XML文檔,而XMLStreamWriter介面用於生成一個
XML文檔。XMLEventReader負責使用一個對象事件迭代子分析XML事件-這與XMLStreamReader所使用的游標機制
形成對照。

⑵ 如何在 Visual Studio 中進行XML編程

XML(可擴展標記語言)是一種提供數據描述格式的標記語言。與其他編程語言相比,其有很大的優勢。如可以在多個平台中進行更加准確的內容聲明、更加容易的進行檢索等等。今天我們來介紹如何在Visual Studio中進行XML編程。 一、XML編程可以提高Visual Studio平台中數據的處理能力。 與其把XML當作一種可擴展標記語言,筆者更願意把它叫做一種工具。這個工具可以提高Visual Studio平台中數據的處理能力。正如文章開頭所說的,XML可以將後台數據與表進行分離。如此的話,兩者就可以分工合作。Visual Studio平台只負責數據的邏輯處理,如邏輯運算、條件判斷等等,而不需要關心其客戶端顯示的格式問題。而XML負責在客戶端如何顯示,如保留幾位小數、顯示哪些內容、許可權控制等等。術業有專攻,這么處理,就可以明顯提高Visual Studio平台中應用程序的數據處理能力。 二、使用XML編程工具時要注意安全問題。 雖然可以在Visual Studio平台中實現XML編程語言,但是他們畢竟是不同的產品,其內部的實現機制,如安全機制,有比較大的差異。為此要在這個Visual Studio平台中使用XML工具的話,一些安全方面的問題需要引起程序開發人員的重視。 如在使用XML編輯器的時候,需要注意類的執行許可權。XML編輯器是Visual Studio中實現XML的主要途徑。通常情況下,這個XML編輯器在系統初次載入時會自動下載。那麼如何下載這個XML編輯器才是安全的呢?一般情況下可以通過HTTP的方式下載。但是由於HTTP協議自身的缺陷(其不會對傳輸的數據進行加密),故有時候出於安全方面的考慮,會對其進行限制。用戶通常可以在XML編輯器、雜項工具選項對話框中,設置是否需要禁用HTTP下載。 如在調試時,需要給XSLT調試程序配置合適的許可權。XSLT是在Visual Studio平台中調試XML可擴展標記語言的工具。XSLT調試程序會在沙盒型應用程序中對XML腳本語言進行XSLT轉換。在轉換的過程中,出於安全方面的考慮,程序人員往往需要根據樣式表所在處的位置來指定一系列的安全策略。如來自互聯網的樣式表通常來說存在一定的安全隱患,此時就需要對其許可權進行限制。而對於來自用戶電腦上或者企業共享伺服器上的樣式表,相對安全,可以採取完全信任的許可權運行。針對樣式表的不同位置設置不同的許可權,則可以在最大程度上保障安全與效率方面的均衡。 三、如何在Visual Studio 中生成XML Web Services客戶端。 通過創建XML Web Services客戶端的形式來實現XML,是一個常用的便捷方法。XML Web Services客戶端是指使用SOAP消息與Web伺服器進行通信的組件和應用程序。XML Web Services客戶端其實際的表現形式有兩種。一是通過網頁形式來實現,即一個Web應用程序;二是通過傳統的客戶端界面來實現,即跟C/S模式下的客戶端類似,只是其採用的協議不同。那麼該如何在Visual Studio平台中建立XML Web Services客戶端呢?由於在Visual Studio中友好的集成了XML工具,所以要實現這個要求並不難。筆者認為可以歸結為如下四個步驟來完成。 第一步創建一個Web服務的代理類。在具體實現之前,程序開發人員要轉變一個觀念。即在實現XML編程工具的時候,其都是通過類來實現的。也就是說,VisualStudio中內置了許多類,通過這些類來調用XML可擴展標記語言。了解這個前提,對於後面的開發具有很大的幫助。為此要創建XML Web Services客戶端的話,首先需要創建一個Web服務的代理類。 第二步在客戶端重對剛才創建的類進行處理。如需要在客戶端代碼中引用剛才創建的代理類,並且需要創建這個代理類的一個實例。在引用代理類的時候,需要注意不同的客戶端類型,其引用的方式有所不同。在開發客戶端的時候,如果即要採用Web應用程序作為客戶端,也需要傳統的C/S客戶端,那麼在開發應用程序中可能需要加入一個必要的判斷條件,以增強應用程序的靈活性。舉一個簡單的例子,如開發一個郵件系統。其即可以直接通過網頁來訪問郵件,也可以通過outlook郵件客戶端來接收郵件。由於採取的客戶端類型不同,其代理類的引用方式也有所不同。此時伺服器就需要判斷用戶採用的是哪種類型的客戶端。根據判斷的結果來確定所需要採用的引用方法。 第三步設置代理類的屬性與方法。一般情況下,對於代理類的屬性只要採用默認的即可。但是有時候程序開發人員可能不允許匿名訪問。如一個電子商務系統,一定要求用戶有合法的身份才可以訪問。此時就需要更改代理類的屬性(更改Credentials屬性)。這個屬性主要的作用就是用來獲取或者設置客戶端身份驗證的安全憑據。如程序開發人員將這個屬性顯示設置為需要身份驗證憑據時,就會禁止用戶匿名訪問。設置完屬性之後,還需要對這個代理類調用與要與之進行通信的Web服務設置相對應的方法。這里需要注意一點,跟代理類引用一樣,用戶所採用的客戶端類型不同,其方法也有所不同。對於有多個客戶端要求的應用軟體來說,需要在設置的時候,加入一個判斷條件。根據用戶所採用的客戶端不同,對應不同的方法。否則的話,無論是數據還是在顯示格式上,都會與實際的有所差異。 第四步就是對客戶端進行調試。在調試的時候,除了要注意功能是否可以實現之外,還需要關注安全方面的問題。在上面的內容中筆者強調過,需要根據XML樣式表的位置來設置不同的許可權。這可以在保障安全性的同時,提高應用程序的效率。在調試與測試的過程中,有可能為出現「請求因HTTP狀態失敗:拒絕訪問」的錯誤信息。很多新手在使用XML編程工具的時候,都會遇到這個問題。這主要是因為許可權上的錯誤所造成的。如有可能是沒有將安全憑據傳遞給代理類的憑據緩存。 要解決這個問題的話,就需要對Windows身份驗證模式進行配置。如需要配置客戶端憑據並將這個憑據傳遞給使用各種形式的Windows身份驗證的Web服務。身份驗證是一項比較復雜的工作。在一個開發團隊中,往往有專門的技術人員來負責這塊內容,其主導這個應用程序的整個安全機制。故具體採用哪種形式的身份認證方式、如何才能夠安全的傳遞憑據,這需要開發人員與安全技術人員共同協商實現。其一個主要的原則就是在保障安全的同時,不要影響到應用程序的性能。在實際工作中,經常會遇到這種錯誤。系統登陸的時候,速度特別慢。但是登陸以後,其速度就會有顯著的改善。這很大一方面原因,就是沒有在身份認證與性能之間獲得一個平衡。這無形中就給用戶造成了不好的影響。 最後筆者總結一下。在Visual Studio平台中生成XML編程時,主要需要注意兩點。一是用戶所採用的客戶端不同,其代理類的引用與對應的方法有所差異。為了提高應用程序的靈活性,在代碼中往往需要加入判斷條件。或者就開發兩個不同類型的客戶端。二是安全固然重要,性能也不能夠忽視。在實際開發中,要避免登陸過程慢、後續操作快的誤區。

⑶ 如何利用Java語言進行XML編程

為了簡化編寫處理 XML 的 Java 程序,已經建立了多種編程介面。這些介面或者由公司定義,或者由標准體或用戶組定義,以滿足 XML 程序員的需要。本教程將討論以下介面:

Document Object Model (DOM,文檔對象模型),Level 2

Simple API for XML (SAX), Version 2.0

JDOM, Jason Hunter 和 Brett McLaughlin 創立的一種簡單 Java API

Java API for XML Processing (JAXP)

這四種介面中前三個(DOM、SAX
和 JDOM)定義了如何訪問與表示 XML 文檔的內容。JAXP 包含創建解析器對象的類。要創建 DOM 或 SAX 解析器,您需要使用
JAXP。如果使用 JDOM,JDOM 庫將在幕後使用 JAXP 為您創建一個解析器。總之:

使用 DOM、SAX 或 JDOM 處理 XML 文檔的內容。

如果使用 DOM 或 SAX,則使用 JAXP 創建解析器。

如果使用 JDOM,則 JDOM 庫為您創建解析器。

我將考察上述每種 API 的設計目標、長處和缺點,同時還涉及到一點它們的歷史以及創建這些 API 的標准體。
關於例子

本教程中包含多個使用 DOM、SAX 和 JDOM API 的示常式序。所有這些程序都使用 XML 標記的莎士比亞十四行詩。十四行詩的結構如下:
<sonnet>
<author>
<lastName>
<firstName>
<nationality>
<yearOfBirth>
<yearOfDeath>
</author>
<lines>
[14 <line> elements]
</lines>
</sonnet>
設置機器
在運行這些例子之前,需要對您的機器作一些設置。
(假設您知道如何編譯和運行 Java 程序,並了解如何設置 CLASSPATH變數。)
首先請訪問 Apache XML Project (http://xml.apache.org/xerces2-j/) 上的 Xerces XML 解析器主頁。
您也可以直接去 下載頁面 (http://xml.apache.org/xerces2-j/download.cgi)。
解壓從 Apache 下載的文件。根據解析器版本的不同,這樣將會創建名為 xerces-2_5_0或者類似名稱的目錄。
所需要的 JAR 文件(xercesImpl.jar和xml-apis.jar)應該出現在 Xerces 根目錄下。
訪問 JDOM 項目站點 並下載最新版本的 JDOM (http://jdom.org/)。
解壓從 JDOM 下載的文件,這樣將建立名為 jdom-b9或者旅毀類似名稱的目錄。
所需要的 JAR 文件(jdom.jar)應該在build目錄中。
最後請下載本教程的示例壓縮文件 ,並解壓該文件。
把當前目錄 (.)、xercesImpl.jar、xml-apis.jar和jdom.jar添加到CLASSPATH變數中。

基礎
XML 解析器是讀取 XML 文檔並分析其結構的一段代碼。這一部分將介紹 XML 解析器是如何工作的。
我將討論不同類型的 XML 解析器以及何時使用它們。
本教程後面的章節將討論如何創建解析羨和器以及如何處理解析器給出的結果。
如何使用解析器
我將在後面的章節對此詳細討論,一般而言使用解析器需要以下步驟:
創建一個解析器對象
使解析器指向您的 XML 文檔
處理結果
顯然第三步最為復雜。一旦知道了 XML 文檔的內容,比方說,您可能希望生成一個 Web 頁面、創建一個訂單或者做一個餅圖。
考慮到 XML 文檔所含數據的兄鎮盯多樣性,編寫一個應用程序處理所有可能的輸入是一項艱巨的任務。
所幸的是,這里討論的常見 XML 解析工具使這項工作大大簡化了。

閱讀全文

與xml編程與應用教程答案相關的資料

熱點內容
linuxfile結構體 瀏覽:340
伺服器內存不夠怎麼擴展 瀏覽:841
java獲取byte 瀏覽:55
eth對抗量子加密 瀏覽:877
vs2013可以用c編譯器嗎 瀏覽:376
下載的ios要解壓嗎 瀏覽:5
通達信pvi指標源碼 瀏覽:640
鄭州綠城通行app怎麼使用 瀏覽:314
雲南中文版伺服器託管雲空間 瀏覽:124
寬頻伺服器無響應是什麼情況 瀏覽:450
醫易時空醫學pdf 瀏覽:389
菠蘿筆記app怎麼樣 瀏覽:298
查看mysql表的命令 瀏覽:684
pomelo命令 瀏覽:840
51單片機音樂有延時 瀏覽:932
怎麼在appstore注銷 瀏覽:863
伺服器怎麼給別人發錢 瀏覽:94
路虎攬勝更換壓縮機 瀏覽:369
rediszset源碼解析 瀏覽:823
安卓如何設置自製鈴聲 瀏覽:573