當前位置:首頁 » 編程語言 » java中的xml

java中的xml

發布時間: 2023-09-06 00:04:37

『壹』 java中xml有什麼作用,用在什麼地方

java中xml一般是用來當做配置文件的,比方說struts的struts.xml、spring的application.xml,這裡面記錄的一般是配置信息,比方說servlet配置,映射注入配置等等都可以用xml來配置,當然配置也可以寫入資料庫,如果配置和程序的業務無關,也和系統配置無關,僅僅和系統構架有關,那就可以把配置寫入xml裡面來存儲這些配置。

『貳』 java和xml什麼關系

xml(Extensible Markup Language)中文意思就是可擴展標記語言,用於存儲數據和描述數據,不同的平台可以同過xml文件建立起聯系。
在java開發中,許多的配置文件,都是xml的,比如web.xml,struts-config.xml,ibatis的sqlMapConfig.xml等。
XML作為全球通用的結構化語言,越來越受人們青睞,各種開發平台(比如Microsoft Studio系列、Oracle系列、Inprise Borland系列等)也都把支持XML開發作為宣傳口號之一 。由於筆者所從事的電子政務開發較早的引入了XML,所以嘗到了許多甜頭,在許多項目中利用XML數據交換信息,省去了許多麻煩事,不用制定繁鎖的數據格式,利用XML數據易於表達,也利於一線開發者跟蹤調試。

『叄』 Java解析XML的幾種方法

  1. DOM解析

    ①構建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: 元素,可用於獲取屬性參數

  1. SAX(Simple API for XML)解析

    【DefaultHandler類】


    SAX事件處理程序的默認基類,實現了DTDHandler、ErrorHandler、ContextHandler和EntityResolver介面,通常
    做法是,繼承該基類,重寫需要的方法,如startDocument()


    【創建SAX解析器】


    SAXParserFactory saxf = SAXParserFactory.newInstance();


    SAXParser sax = saxf.newSAXParser();


    註:關於遍歷


    ①深度優先遍歷(Depthi-First Traserval)


    ②廣度優先遍歷(Width-First Traserval)

  2. JDOM(Java-based Document Object Model)

  3. DOM4J(Document Object Model for Java)

  4. StAX(Streaming API for XML)

『肆』 在java在如何解析XML文件

在java環境下讀取xml文件的方法主要有4種:DOM、SAX、JDOM、JAXB
1. DOM(Document Object Model)
此方法主要由W3C提供,它將xml文件全部讀入內存中,然後將各個元素組成一棵數據樹,以便快速的訪問各個節點 。 因此非常消耗系統性能 ,對比較大的文檔不適宜採用DOM方法來解析。 DOM API 直接沿襲了 XML 規范。每個結點都可以擴展的基於 Node 的介面,就多態性的觀點來講,它是優秀的,但是在 Java 語言中的應用不方便,並且可讀性不強。
實例:
import javax.xml.parsers.*;
//XML解析器介面
import org.w3c.dom.*;
//XML的DOM實現
import org.apache.crimson.tree.XmlDocument;
//寫XML文件要用到

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//允許名字空間
factory.setNamespaceAware(true);
//允許驗證
factory.setValidating(true);
//獲得DocumentBuilder的一個實例
try {
DocumentBuilder builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
System.err.println(pce);
// 出異常時輸出異常信息,然後退出,下同
System.exit(1);
}
//解析文檔,並獲得一個Document實例。
try {
Document doc = builder.parse(fileURI);
} catch (DOMException dom) {
System.err.println(dom.getMessage());
System.exit(1);
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}

//獲得根節點StuInfo
Element elmtStuInfo = doc.getDocumentElement();

//得到所有student節點
NodeList nlStudent = elmtStuInfo.getElementsByTagNameNS(
strNamespace, "student");
for (……){
//當前student節點元素
Element elmtStudent = (Element)nlStudent.item(i);

NodeList nlCurrent = elmtStudent.getElementsByTagNameNS(
strNamespace, "name");
}

『伍』 xml在java項目中起到的作用具體是什麼

java項目中,xml文件一般都是用來存儲一些配置信息
一般的編程, 多數用來存儲配置信息 . 拿JDBC來說,可以把資料庫連接字元串寫到xml,如果要修改數據源,只需要改xml就可以了,沒必要再去重新編譯java文件,而且,這些配置信息放在一起,別的人來讀你寫的代碼的時候,就方便了很多
框架中的xml , 除了配置信息 , 還可以寫一些對應關系,其實也是一種配置信息 .拿struts來說,xml配置的是頁面url對應後台java類(action)的關系,在配置和修改的時候,只需要改一個xml文件就可以了,沒必要一個個的查找java代碼
java項目完成之後,每個模塊應該都是獨立的,模塊之間的關系都可以使用xml來進行維護,spring就是這樣的一個框架

一個好的項目,需要有良好的可拓展性,如果把所有的邏輯關系還有配置信息都寫入代碼中,會使程序的可拓展性變差,為了解決這個問題,xml就可以對整個項目進行調度(spring)

還有使用xml作為數據儲存,不過用起來很少,多數還是用來存放配置信息

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

在java中解析xml有哪幾種方法?
1、JDOM生成和解析XML
為減少DOM、SAX的編碼量,出現了JDOM
優點:20-80原則,極大減少了代碼量。
使用場合:要實現的功能簡單,如解析、創建等,但在底層,JDOM還是使用SAX(最常用)、DOM、Xanan文檔。
2、SAX生成和解析XML文檔
為解決DOM的問題,出現了SAX,SAX
事件驅動。當解析器發現元素開始、元素結束、文本、文檔的開始或結束等時發送事件,程序員編寫響應這些事件的代碼,保存數據。
優點:不用事先調入整個文檔,佔用資源少。SAX解析器代碼比DOM解析器代碼小,適於Applet下載。
缺點:不是持久的,事件過後若沒保存數據,那麼數據就丟了。無狀態性,從事件中只能得到文本,但不知該文本屬於哪個元素。
使用場合:Applet。只需XML文檔的少量內容,很少回頭訪問,機器內存少。
3、DOM生成和解析XML文檔
為XML文檔的已解析版本定義了一組介面。解析器讀入整個文檔,然後構建一個駐留內存的樹結構,然後代碼就可以使用 DOM 介面來操作這個樹結構。
優點:整個文檔樹在內存中,便於操作,支持刪除、修改、重新排列等多種功能。
缺點:將整個文檔調入內存(包括無用的節點),浪費時間和空間。
使用場合:一旦解析了文檔還需多次訪問這些數據,硬體資源充足(內存、CPU)。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726