導航:首頁 > 編程語言 > java介面xml

java介面xml

發布時間:2022-09-26 17:44:54

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

B. java 怎麼接收第三方傳過來的xml

下面是一個java Servlet示例,用於接收POST提交過來的XML數據(僅供參考 ):

Java Servlet代碼片段:
import java.io.*;

//...... Servlet doPost相關代碼略去

BufferedReader in = request.getReader();
String line;
String realPath = request.getServletContext().getRealPath("/saved-data.txt");

File f = new File(realPath);
FileWriter fw = new FileWriter(realPath);
BufferedWriter bw = new BufferedWriter(fw);
try {
while ((line = in.readLine()) != null) {
out.println(line);
bw.write(line);
bw.newLine();
}
bw.close();
fw.close();
out.print("saved data ok!");
} catch (Exception e) {
e.printStackTrace();
out.println("Mission Completed");
}

C. PHP如何向JAVA介面webservice發送xml

function httpPostXml($url='',$xmlData=''){
$server = $url;
//首先檢測是否支持curl
if (!extension_loaded("curl")) {
trigger_error("對不起,請開啟curl功能模塊!", E_USER_ERROR);
return null;
}
//構造xml
$xmldata= $xmlData;
//初始一個curl會話
$curl = curl_init();
//設置url
curl_setopt($curl, CURLOPT_URL,$server);
//設置發送方式:post
curl_setopt($curl, CURLOPT_POST, true);
//設置發送數據
curl_setopt($curl, CURLOPT_POSTFIELDS, $xmldata);
//不輸出瀏覽器,返回service返回值
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//抓取URL並把它傳遞給瀏覽器
$return = curl_exec($curl);
//關閉cURL資源,並且釋放系統資源
if(curl_errno($curl)){
echo curl_error($curl);
}
var_mp($return);
$xml = simplexml_load_string($return);
$returnData = json_decode(json_encode($xml),TRUE);

return $returnData;
}

D. java 怎麼接收第三方傳過來的xml

如果是網站傳過來的,應該是用http協議發過來的,可以使用HttpEntity中的方法(記得好像是response.getEntity()這樣用的)來獲取消息體,再創建一個xml的實例把消息體裡面的xml接收下來就好啦。如果是寫介面的話可以寫一個接受消息體的方法和一個格式化xml的方法

E. Java Web調http介面發送的XML那種報文怎麼看,我想看我發送的報文格式是否與人家的樣例一樣

其實很多種方法可以看,你可以將報文轉換成string,或者下載一個http監控器,例如fiddler2這樣的工具,可以看到所有請求的數據的,希望深圳遠標培訓中心能幫到你!

F. JAVA調第三方介面返回XML文件用httpclient實現求大神給指示(新號就5分全給了)要一個工具類,一個用例

以下是一個http介面調用的例子:區別是返回的json數據,xml數據也是一樣的,解析下xml數據就可以了,希望對你有幫助
public String getOrderCount() {
String mobile = ServletActionContext.getRequest().getParameter("mobile");
String urlStr = "http://127.0.0.1/OderServer/orderCount.htm";
urlStr += "?telphone=" + mobile + "&endTime=" + DateUtil.getCurrentDay("yyyyMMdd") + "&timeLength=2";

URL url = null;
HttpURLConnection httpurlconnection = null;
try {
url = new URL(urlStr);
// 以post方式請求
httpurlconnection = (HttpURLConnection) url.openConnection();
httpurlconnection.setDoOutput(true);
httpurlconnection.setRequestMethod("POST");
httpurlconnection.getOutputStream().flush();
httpurlconnection.getOutputStream().close();

// 獲取響應代碼
//int code = httpurlconnection.getResponseCode();
//System.out.println("code " + code);

// 獲取頁面內容
java.io.InputStream in = httpurlconnection.getInputStream();
java.io.BufferedReader breader = new BufferedReader(
new InputStreamReader(in, "utf-8"));
StringBuffer result = new StringBuffer();
String str = breader.readLine();
while (str != null) {
result.append(str);
str = breader.readLine();
}
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/json;charset=utf-8");
response.getWriter().print(result);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (httpurlconnection != null)
httpurlconnection.disconnect();
}
return null;
}

G. java xml 介面

自己寫一個servlet 接收請求。收到請求後用dom4j或jdom生成一個對應的xml,然後用response的輸出流把xml作為響應輸出。

H. JAVA利用Webservice從對方提供的介面獲取XML格式的數據

//dom4j解析XML
SAXReader saxReader = new SAXReader();

Document doc = saxReader.read(new File("student2.xml"));

Element root = doc.getRootElement();

List childList = root.elements();

List childList2 = root.elements("hello");

Element first = root.element("hello");

System.out.println(first.attributeValue("age"));

for(Iterator iter = root.elementIterator(); iter.hasNext();)
{
Element e = (Element)iter.next();

System.out.println(e.attributeValue("age"));
}

System.out.println("---------------------------");

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document document = db.parse(new File("student2.xml"));

DOMReader domReader = new DOMReader();

//將JAXP的Document轉換為dom4j的Document
Document d = domReader.read(document);

Element rootElement = d.getRootElement();

System.out.println(rootElement.getName());

I. 您好:我也是java,不過是新手,因為現在有個需求就是,調用第三方介面,並傳入xml格式,求教。謝謝!!

網路:HttpClient 例子。 xml格式意思是:用流的方式傳入xml格式的字元串

J. java調用基於http+post+xml介面

1、直接用servlet就可以了,request.getInputStream(),然後解析xml,然後你的業務操作,組裝XML,response.getOutputStream()寫出去就OK了。
但這個性能低,而且還要依賴web容器。
2、socket實現http協議,把HTTP協議好好看看,自己解析(其實就是字元串的操作哦)。
3、你要是只做客戶端的話可以用httpClient,幾行代碼搞定了

閱讀全文

與java介面xml相關的資料

熱點內容
寶塔上的網站源碼怎麼打包 瀏覽:281
采補爐鼎小說 瀏覽:892
窗口輪廓菜單命令的快捷鍵 瀏覽:300
怎麼看安卓版本是幾位 瀏覽:640
貓撲天涯的情感類小說 瀏覽:428
正能量電影中國 瀏覽:276
妖神記免費全集小說 瀏覽:536
喜虎棋牌源碼 瀏覽:909
武林外傳文件加密 瀏覽:596
紅羊真打軍電影野 瀏覽:59
香港露點喜劇電影 瀏覽:402
藍天使電話手錶如何下載app 瀏覽:82
如何用App寫教案 瀏覽:579
中文字幕在線資源 瀏覽:990
法國啄木鳥軍艦系列 瀏覽:809
我的世界伺服器怎麼樣靈魂綁定 瀏覽:159
不用下載直接看片的網站 瀏覽:732
台灣同性電影女同 瀏覽:155
武漢程序員的工資 瀏覽:153
奕劍術林奕 瀏覽:257