當前位置:首頁 » 編程語言 » javaxml對象

javaxml對象

發布時間: 2022-05-02 08:31:25

java的xml的解析方式有什麼,他們的解析流程是怎麼樣的,有什麼區別

答:4種。(或者說是兩種,因為JDOM和DOM4J是DOM的兩個特殊情況)

1.SAX解析
解析方式是事件驅動機制!

SAX解析器,逐行讀取XML文件解析,每當解析到一個標簽的開始/結束/內容/屬性時,觸發事件。

可以在這些事件發生時,編寫程序進行相應的處理。

優點:

分析能夠立即開始,而不是等待所有的數據被處理。

逐行載入,節省內存,有助於解析大於系統內存的文檔。

有時不必解析整個文檔,它可以在某個條件得到滿足時停止解析。

缺點:

1.單向解析,無法定位文檔層次,無法同時訪問同一個文檔的不同部分數據(因為逐行解析,當解析第n行時,第n-1行)已經被釋放了,無法再對其進行操作)。

2. 無法得知事件發生時元素的層次, 只能自己維護節點的父/子關系。

3. 只讀解析方式, 無法修改XML文檔的內容。

2. DOM解析
是用與平台和語言無關的方式表示XML文檔的官方W3C標准,分析該結構通常需要載入整個 文檔和內存中建立文檔樹模型。程序員可以通過操作文檔樹, 來完成數據的獲取 修改 刪除等。

優點:

文檔在內存中載入, 允許對數據和結構做出更改。訪問是雙向的,可以在任何時候在樹中雙向解析數據。

缺點:

文檔全部載入在內存中 , 消耗資源大。

3. JDOM解析
目的是成為Java特定文檔模型,它簡化與XML的交互並且比使用DOM實現更快。由於是第一 個Java特定模型,JDOM一直得到大力推廣和促進。

JDOM文檔聲明其目的是「使用20%(或更少)的精力解決80%(或更多)Java/XML問題」 (根據學習曲線假定為20%)

優點:

使用具體類而不是介面,簡化了DOM的API。

大量使用了Java集合類,方便了Java開發人員。

缺點:

沒有較好的靈活性。

性能不是那麼優異。

4. DOM4J解析
它是JDOM的一種智能分支。它合並了許多超出基本XML文檔表示的功能,包括集成的XPath 支持、XML Schema支持以及用於大文檔或流化文檔的基於事件的處理。它還提供了構建文檔表示的選項, DOM4J是一個非常優秀的Java XML API,具有性能優異、功能強大和極端易用使用的特點,同時它也是一 個開放源代碼的軟體。如今你可以看到越來越多的Java軟體都在使用DOM4J來讀寫XML。

目前許多開源項目中大量採用DOM4J , 例如:Hibernate。

Ⅱ XML轉JAVA對象

你在網上下載一個java的xml文件處理包,然後再查「java解析xml」就會有很多的常式,xml的解析器有很多,都是把XML解析成DOM樹形結構,直接讀取屬性值,非常簡單的。然後你建立一個類,構建對象把這個屬性賦值給對象屬性。

Ⅲ 在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所使用的游標機制
形成對照。

Ⅳ 如何將xml文件轉變成java對象

首先 java是面向對象的編程語言,所以你要理解面向對象的思想。在這個前提下我們可以理解 文件 本身就是java的對象File,而xml只是File類中對象的一種實例。你可以創建一個File 把你的xml的路徑傳入這個對象的有參構造,這樣就實例化了一個xml文件類的對象

Ⅳ java中xml有什麼作用,用在什麼地方

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

Ⅵ java解析xml需要學習哪些知識

下面是一位項目經理的博客內容

最近,總有很多初學Java的朋友詢問學Java要學哪些內容。回想8年前我學Java的時候,也是對此一無所知。看著那黑呼呼的命令行窗口,怎麼也猜不出它和企業開發有什麼關系,也想像不出在控制台輸出的乘法口訣1*1=1除了給幼兒園的小朋友做練習之外還有什麼用途。
兄弟連JAVA戰狼班
現在,經歷了8年的開發,終於可以有一點東西,供當年和我一樣喜歡Java、想從事於java軟體開發的朋友們參考。

1 java語法。通過任何一本Java入門書籍,都可以學會Java的基本語法。千萬不要認為,你把書上的例子程序都能寫出來就算學會了Java語法。要想真正掌握,還需要做大量的測試題。對語法不準確的理解,會使你寫的代碼出現邏輯錯誤。而這些錯誤會使你在真正的項目開發中吃盡苦頭:你認為正確才會寫上去。而在幾十萬行代碼中找出幾行有邏輯錯誤的代碼,非常困難。因為你幾乎不會懷疑你認為正確的代碼存在錯誤。

2 常用類。永遠不要寫別人已經實現的代碼。有很多功能,用JDk中現有的類就可以完成。你需要熟悉JDK.可以通過研究JDK幫助文檔和JDK源代碼的方式,逐漸了解,你需要的類都在什麼地方。一方面,要熟悉有哪些可以直接使用的資源,另一方面,學習一下,SUN公司的工程師怎樣寫代碼。

3 IDE 集成開發環境。現在企業最常用的是IBM公司的eclipse。類似的還有JBuilder,Idea,NetBeans等等。畢竟,只有5%的頂尖高手在使用簡單的文本編輯器在寫Java代碼。多數程序員都是在使用這些東西。

4 資料庫.MySql,Oracle,DB2.小項目多數使用MySql這樣的免費資料庫。大一些的項目會考慮使用Oracle或者DB2. Java項目很少使用SqlServer.因此,你還需要學習資料庫方面的一些知識。可以從SQL語言開始。這些資料庫都支持標准SQL.學會基本的SQL,參考具體的資料庫手冊,就可以完成一般的項目開發了。當然,要想使你的程序運行的效率更高,需要更深入的學習。大部分的程序優化,都是從這部分開始的。

5 JDBC Java資料庫連接。使用Java程序操作資料庫。這部分非常重要。幾乎所有的企業項目都會用到。

6 HTML CSS Javascript。
HTML--(HyperTextMark-upLanguage) 超文本標記語言。 CSS --(Cascading Style Sheets)層疊樣式表。你千萬不要以為,CS又出了加強版。呵呵。 JavaScript--是一種由Netscape的LiveScript發展而來的腳本語言.
准確的說,這些東西和Java語言本身關系不大。但是,現在的企業項目,以B/S結構的居多。因此,我們的Java程序,會有大量的機會和它們打交道。需要提前准備一下。

7 你需要學習如何使用及管理WEB伺服器,例如tomcat,並且知道如何在其基礎上擴展和維護WEB程序,如何使用它的附加服務,如連接池。

8 JSP Servlet.這兩個是初級Java程序員必須掌握的基本技能,是所有B/S結構框架的基礎。相應的,還需要學習EL以及JSTL(StandardTagLibraries)和可以選擇的第三方TagLibraries,以提高表示層的處理能力。

9 企業流行框架 Struts,Spring,Hibernate等。

10 Java設計模式。有一些特殊的功能,只有按照特定的設計模式才能實現。如果你有了5萬行以上的代碼經驗,可以開始研究一下設計模式。

11 你還要跟上技術發展的步伐,了解在Java項目中使用的新技術。如Ajax等。

還有

目前,JAVA是開發人員的熱寵,很多論壇都有不少熱愛JAVA的開發人員,也有不少想成為JAVA程序員,
但苦於不知道該如何學習,也不清楚該學些什麼知識才能成為一個JAVA程序員。本人在這里拋磚引玉,
和大家討論成為一個JAVA初級程序員應該具有的知識,與大家共享。
個人認為想成為一個合格的JAVA初級程序員應該具備如下知識:
一、面向對象的知識:JAVA是一個面向對象的開發語言,因此熟悉面向對象對學習JAVA很有必要,您
要了解:什麼是對象,什麼是類;什麼是封裝,什麼是多態,什麼是繼承;什麼是抽象類,什麼是
介面。了解了概念後,您還需要這些概念是如何體現的,如類和對象有什麼區別?類是如何封裝的?
二、JAVA語法:如果您已經有了開發經驗,恭喜您,您學習JAVA語法來將比較容易。如果您有C++等
面向對象語言的開發經驗,您只需簡單的翻看一下介紹JAVA的相關書籍就可以了。如果您是新手,沒有關
系,您下些工夫,好好研究一本JAVA初級教程之類的書就可以了。
學習了JAVA語法,加上面向對象的知識,只有您用心,您就可以寫出來比較好的JAVA代碼了。如果您再
抽出時間熟悉一下JAVA編程規范,您代碼的水平就應該不俗了。
三、JSP和HTML:在我國的絕大多數公司,做JAVA程序員都少不了和JSP以及HTML打交道。因此,想成為JAVA程序員就不可避免的要熟悉JSP和HTML,您最好能知道JSP的幾個內置對象,如Session,Request,Reponse,,以及常用的JSP標簽,如include,userBean等。盡管一些工具會幫您生成HTML代碼,但您還是要熟悉比如title,,<table>,<tr>,<td>等。如果您再熟悉一下JS和CSS就更好了,那會使您製作的頁面更友好。
四、WebServer:熟悉了以上三種,可以肯定的說您已經可以製作出來JSP頁面了,您也可以在您的頁面里使用自己開發的JAVA類(JAVABEAN)了,但您的頁面總要跑起來才能看到您要的效果,這就要求您必須熟悉一種WebServer,比如:TOMCAT,RESIN等。您要熟悉如何發布您的應用,如何利用WebServer的資料庫資源等。
五、開發工具:大家都知道,開發工具可以幫助您更好更快地開發,因此熟悉幾種開發工具很有必要。目前JAVA的開發工具比較流行的有JBuilder,IDEA,Eclipse,HTML的開發工具有Dreamweaver等。
六、熟悉一種框架:熟悉一種框架其實是成為JAVA程序員的一種可選知識,但目前開發B/S結構的應用的開發小組,都差不多會採用一種框架來構建自己的應用系統。框架都會有許多可重用的代碼,良好的層次關系和業務控制邏輯,基於框架的開發使你可以省出很多的開發成本。目前比較流行的框架有Struts和WAF等。

我要說明,您要想從本文中學到一些JAVA高級知識是學不到的,因為本文告訴您的作為一個(高級)JAVA工程師應該學什麼,而不是告訴您具體的知識細節。
一、JAVA。要想成為JAVA(高級)工程師肯定要學習JAVA。一般的程序員或許只需知道一些JAVA的語法結構就可以應付了。但要成為JAVA(高級)工程師,您要對JAVA做比較深入的研究。您應該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您對JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發現其實您想實現的很多功能,通過JAVA的API都可以實現了,就不必自己費太多的腦經了。
二、設計模式。其實寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個「好」字包括代碼可重用性,可維護性,可擴展性等。如何寫出好的代碼往往要藉助一些設計模式。當然長期的代碼經驗積累,只要您用心,會使您形成自己代碼風格。相信您的代碼也比較符合代碼的可重用性,可維護性,可擴展性。但既然前人已經給我們總結出了經驗,我們何不踩著前人的肩膀前進?
三、XML。現在的系統中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做數據轉換、做系統的配置、甚至可保存您的系統業務數據。因此您必須了解XML,包括它的語法,結構。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的項目中,XML往往擔當系統配置信息的作用,您需要用這些API解析這些配置信息,開發完美的項目。
四、精通使用一種或兩種框架。像在《如何成為java初級程序員》中提到的那樣,「框架都會有許多可重用的代碼,良好的層次關系和業務控制邏輯,基於框架的開發使你可以省出很多的開發成本」。但我這里希望您能精通,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發一個項目時思路會開闊一些,比如您會想到把SQL語句與您的JAVA代碼分開,再比如您會考慮把您的業務邏輯配置到XML或者資料庫中,這樣整個項目就很容易擴張了。
五、熟悉主流資料庫。其實真正比較大的項目都是有人專門做資料庫的,但往往很多項目要求作為(高級)工程師的您也參與資料庫的設計以及SQL的編寫。所以為了更好的為國家做貢獻,建議您還是多了解一些主流資料庫,比如SQLSERVER,ORACLE,多連接SQL和存儲過程以及觸發器。如果您不是「科班」出身,您還需要補充一些資料庫原理方面的知識。
六、精通一種或兩種WEBServer。盡管我再《如何成為java初級程序員》里講過它,我還是要強調您要精通一種或兩種。因為作為JAVA工程師,特別時想成為高級JAVA工程師的您,您不可避免地要部署您的項目到WebServer上,而且只有當您精通一種WebServer,您才可能最大限度地使用它的資源,這往往可以節省很多時間和精力。
七、UML。我知道您肯定想成為高級工程師,因此您有必要了解或熟練或精通UML,這取決於您有多大決心想成為高級工程師和項目經理。在比較正規的開發團隊中,UML是討論項目的交流工具,您要想做一個軟體工程師,您至少要能看懂,您要想做高級工程師,您要能通過它來描述您對項目的理解,盡管這不是必須,但卻很重要。
八、站在高度分析問題:這不是一個知識點,也不是通過書本就能學得到的。只所以提到這一點,是因為我比您還著急,我希望您更快的成為一個高級的軟體工程師,而不是一個一般的軟體工程師。希望您在工作中多向您的系統分析員、需求分析員、系統設計員學習,多站在他們角度上去看您在開發的項目。在最好在項目之初先在您的腦海里對項目有個大致的分析、設計,然後和他們進行比較,找找差別,想想缺點。
九、工具。與在《如何成為java初級程序員》里提到的不同,您在這個階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對ROSE,Together要多了解一些,因為您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鍾了,那些JSP頁面讓初級程序員去寫吧。

Ⅶ java中如何寫xml

您好,提問者:
String xml = 「<?xml version=\"1.0\" encoding=\"GBK\"?><父節點><子節點></子節點></父節點>」;
一般是介面傳輸數據用的。

Ⅷ xml與java對象的相互轉換有幾種方式

JAXB(Java Architecture for XML Binding) 是一個業界的標准,是一項可以根據XML Schema產生Java類的技術。該過程中,JAXB也提供了將XML實例文檔反向生成Java對象樹的方法,並能將Java對象樹的內容重新寫到XML實例文檔。從另一方面來講,JAXB提供了快速而簡便的方法將XML模式綁定到Java表示,從而使得Java開發者在Java應用程序中能方便地結合XML數據和處理函數。 JAXBContext 類提供到 JAXB API 的客戶端入口點。它提供了管理實現 JAXB 綁定框架操作所需的 XML/Java 綁定信息的抽象,這些操作包括:解組、編組和驗證。xml與java對象的相互轉換有幾種方式

Ⅸ 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)。

Ⅹ java怎麼將XML轉成對象

給你一個專業的轉換例子說明:
http://blog.csdn.net/is_zhoufeng/article/details/8273008
看完後你就明白了。

熱點內容
wemall微商城源碼 發布:2025-05-14 22:15:20 瀏覽:803
隆地優選交易密碼是什麼 發布:2025-05-14 21:53:23 瀏覽:94
強酸強鹼存儲櫃 發布:2025-05-14 21:45:16 瀏覽:564
車輛參數配置包括什麼 發布:2025-05-14 21:31:03 瀏覽:163
怎麼引入安卓項目 發布:2025-05-14 21:26:39 瀏覽:824
游戲輔編程 發布:2025-05-14 21:18:49 瀏覽:687
三菱plc一段二段密碼什麼意思 發布:2025-05-14 21:17:16 瀏覽:528
電腦開機密碼忘記了怎麼破解 發布:2025-05-14 21:09:40 瀏覽:57
pythondict格式 發布:2025-05-14 21:09:38 瀏覽:887
落葉片拍攝腳本 發布:2025-05-14 20:40:49 瀏覽:800