導航:首頁 > 編程語言 > javaxmltomap

javaxmltomap

發布時間:2022-05-24 11:07:06

A. xml和java有什麼聯系

那你首先要明白xml是什麼,xml(Extensible Markup Language)中文意思就是可擴展標記語言,用於存儲數據和描述數據,不同的平台可以同過xml文件建立起聯系。在java開發中,許多的配置文件,都是xml的,比如web.xml,struts-config.xml,ibatis的sqlMapConfig.xml等等。。。

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

C. java中如何使用xml 文件

解析的話: dom4j 很常用而且也簡單, 當然oracle::sun的dom解析也要去了解, sax太復雜

xml的用途:
作為配置文件: web.xml 這在web應用中最常用

作為存儲文件: 在mvc開發模式中, 可以暫時代替db作為開發的存儲後台文件

xml編寫:
編寫格式良好的xml文件, 以<?xml version="" encoding="" ?>作為抬頭

xml文件嚴格區分大小寫

xml約束文檔:
編寫格式良好的xml文檔, 需要讀懂DTD,XSD等對xml的格式要求

希望可以幫助你

D. java 怎麼將 map xml 相互轉換

引入dom4j.jar這個包,把Xml文件的節點都讀取下來,再put進map集合里。

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

答案來自網路知道 僅供參考

F. java中如何讀取xml中數據。多節點的。給我一個例子,謝謝。

在我們的程序中,通常要有一些根據主機環境確定的變數.比如資料庫訪問用戶名和密碼,不同的主機可能設置不一樣.只要更改XML配置文件,就可以正常運行.

localhost

sqlname

username

password

上面這個myenv.xml配置文件一般是放在tomcat的WEB-INF/classes目錄下.

我們編制一個Java程序直接讀取,將dbhost dbuser dbpassword提取出來供其他程序訪問資料庫用.

目前使用SAX比較的多,與DOM主要區別是 SAX是一行一行讀取XML文件進行分析,適合比較大文件,DOM是一次性讀入內存,顯然不能對付大文件.這里我們使用SAX解析,由於SAX解析器不斷在發展,網上有不少文章是針對老版本的.假如你使用JDK1.4 ,可以參考 使用SAX處理XML文檔 一文.這里的程序是根據其改進並且經過實踐調試得來的.

對上面myenv.xml讀取的Java程序:

import org.xml.sax.Attributes;

import org.xml.sax.helpers.DefaultHandler;

import org.xml.sax.SAXException;

import java.util.Properties;

//使用DefaultHandler的好處 是 不必陳列出所有方法,

public class ConfigParser extends DefaultHandler {

////定義一個Properties 用來存放 dbhost dbuser dbpassword的值

private Properties props;

private String currentSet;

private String currentName;

private StringBuffer currentValue = new StringBuffer();

//構建器初始化props

public ConfigParser() {

this.props = new Properties();

}

public Properties getProps() {

return this.props;

}

//定義開始解析元素的方法. 這里是將中的名稱xxx提取出來.

public void startElement(String uri, String localName, String qName, Attributes attributes)

throws SAXException {

currentValue.delete(0, currentValue.length());

this.currentName =qName;

}

//這里是將之間的值加入到currentValue

public void characters(char[] ch, int start, int length) throws SAXException {

currentValue.append(ch, start, length);

}

//在碰到結束後,將之前的名稱和值一一對應保存在props中

public void endElement(String uri, String localName, String qName) throws SAXException {

props.put(qName.toLowerCase(), currentValue.toString().trim());

}

}

上面的這個解析程序比較簡單吧? 其實解析XML就是這么簡單.

現在我們已經將dbhost dbuser dbpassword的值localhost sqlname username password提取了出來.但是這只是在在解析器內部,我們的程序還不能訪問.需要再編制一個程序.

import java.util.Properties;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import java.net.URL;

public class ParseXML{

//定義一個Properties 用來存放 dbhost dbuser dbpassword的值

private Properties props;

//這里的props

public Properties getProps() {

return this.props;

}

public void parse(String filename) throws Exception {

//將我們的解析器對象化

ConfigParser handler = new ConfigParser();

//獲取SAX工廠對象

SAXParserFactory factory = SAXParserFactory.newInstance();

factory.setNamespaceAware(false);

factory.setValidating(false);

//獲取SAX解析

SAXParser parser = factory.newSAXParser();

//得到配置文件myenv.xml所在目錄. tomcat中是在WEB-INF/classes

//下例中BeansConstants是用來存放xml文件中配置信息的類,可以自己代替或定義

URL confURL = BeansConstants.class.getClassLoader().getResource(filename);

try

{

//將解析器和解析對象myenv.xml聯系起來,開始解析

parser.parse(confURL.toString(), handler);

//獲取解析成功後的屬性 以後 我們其他應用程序只要調用本程序的props就可以提取出屬性名稱和值了

props = handler.getProps();

}finally{

factory=null;

parser=null;

handler=null;

}

}

}

由於我們的XML文件是使用最簡單的形式 ,因此解析器相對簡單,但是這已經足夠對付我們的配置文件了.

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

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

H. 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數據易於表達,也利於一線開發者跟蹤調試。

I. JAVA能把下面的 xml 轉化為JSON

用XStream這個類庫就可以實現xml ==> java ==> json


不過你這種情況,用類庫直接轉換還很麻煩,要設置很多東西,還要調試

建議自己寫個sax解析器,先把你的xml解析成java對象,再用Gson或用JSONObject或用XStream將對象轉換成json

天下沒有免費的午餐,5分只能幫你到這了,請採納哈

J. Java文件解析xml文件轉成 map

xml 文件解析 涉及到 屬性 和 相同的節點元素, 解析成map需要做相應的處理,

具體實現可以看以下鏈接,
http://blog.csdn.net/u011490355/article/details/77775544

閱讀全文

與javaxmltomap相關的資料

熱點內容
台達PLC編譯按鈕在哪裡 瀏覽:137
非編程計算器多少錢 瀏覽:653
房本還完貸款解壓 瀏覽:816
中國程序員有出名嗎 瀏覽:546
亳州雲伺服器 瀏覽:630
程序員最難的面試 瀏覽:892
配音秀app怎麼誦讀 瀏覽:750
sparkcore源碼 瀏覽:100
程序員中年生活 瀏覽:355
讀取加密信息失敗怎麼回事 瀏覽:510
編譯過程之後是預處理嗎 瀏覽:351
安卓是基於什麼做出來 瀏覽:600
視頻字幕提取APP怎麼使用 瀏覽:59
js通過ip地址連接伺服器嗎 瀏覽:848
java數字金額大寫金額 瀏覽:858
人人影視路由器固件編譯 瀏覽:967
照片通訊錄簡訊怎麼從安卓到蘋果 瀏覽:458
邏輯開發編譯環境 瀏覽:672
ce自己編譯 瀏覽:898
javaexe進程 瀏覽:478