導航:首頁 > 編程語言 > xml解析特殊字元處理java

xml解析特殊字元處理java

發布時間:2023-04-03 05:08:17

A. java如何解析xml格式的字元串

我發個Demo給你吧
加8446666

B. java xml格式字元串解析

package test;

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

/**
* 使用JDOM實現XML解析,jar包:jdom-2.0.5.jar
* @author zhurongfu
*
*/
public class JdomTest {
public static void parseXml (File file) throws JDOMException, IOException{

SAXBuilder sax = new SAXBuilder();
Document doc = sax.build(file);
Element root = doc.getRootElement();

parseElement(root);
}

private static void parseElement(Element element) {
// TODO Auto-generated method stub
List<Element> elementList = element.getChildren();
for(Element e:elementList){
if(e.getChildren().size() > 0){
parseElement(e);
}else {
String elementName = e.getName();
if("id".equals(elementName)){
System.out.println("a的值為:"+e.getValue());
}else if("destaddr".equals(elementName)) {
System.out.println("b的值為:"+e.getValue());
}else if("status".equals(elementName)){
System.out.println("c的值為:"+e.getValue());
}
}
}
}

public static void main(String[] args) throws JDOMException, IOException {
// TODO Auto-generated method stub
File file = new File("test.xml");
parseXml(file);
}

}

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

D. java 讀XML時 <![CDATA段是否需要特殊處理 怎麼處理 請帖源碼.

可以使用則慶sax解析
例如
<sequenceFlow id="殲盯賣flow6" sourceRef="exclusivegateway1" targetRef="usertask3">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${leaveDay <=3}]]><氏逗/conditionExpression>
</sequenceFlow>
獲得conditionExpression元素之後,使用 conditionExpression.getText();就可以得到${leaveDay <=3}
註:conditionExpression為Element

E. java解析XML字元串的問題

使用第三發組件,我用的是dom4j.jar
代碼如下:
import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class TestArray{
private File file;
public TestArray(File file){
this.file=file;
}
public void read() throws DocumentException{
//獲得解析器
SAXReader sr = new SAXReader();
//解析xml文件
Document doc = sr.read(file);
//獲得xml根元素
Element root = doc.getRootElement();
//獲得根元素迭代器
Iterator<Element> ir = root.elementIterator();
//迭代根元素,看根元素下有哪些其他元素
while (ir.hasNext()) {
//第一個元素
Element element = (Element) ir.next();
//判斷是哪個元素,方法應該沒用錯,錯了就不好意思了
if(element.getName().equals("flag")){
//獲取此元素屬性值
String code = element.attributeValue("code");
String msg = element.attributeValue("msg");
}else{
String totalCount = element.attributeValue("totalCount");
Iterator<Element> ir1 = element.elementIterator();
//如果此元素下還有別的元素,則繼續迭代
while(ir1.hasNext()){
Element commentary = (Element) ir1.next();
String type = commentary.attributeValue("type");
}
}
}
}
}

F. 在Java程序處理中,對於XML格式的字元串,碰到&,『,「等字元,該如何處理

& 是用 & a m p ; 來代替

去掉空格……昨天寫完忘記看被自己換成&了
引號不記得了
差不多的方法,自己查查吧

G. java中怎樣對讀取的xml數據中的特殊字元進行編碼

不確定有無,但你可以方便的自己寫一個這樣的方法
首先把字元轉換成int類型,這個int就表示那個字元的unicode值
然後把這個int轉成String類型
最後在這個String的前面加上&#就可以了

H. java解析第三方xml文件 文件中的特殊字元如何處理 文件不可改

一般的特殊字元都是需要轉義的,請參閱xml特殊字元如何轉義。

I. 解析XML遇到不可見特殊字元

用restassured發API請求返回的XML response, java解析的時候報failed to parse XML document.
在eclipse裡面將response列印在控制台, 發梁賣知現<awd>前多列印了一個?

將response放到在線XML格式化工具內,橡消報Error on line 1 of document : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.

將滑鼠放到<aws>的<前, 按下delete鍵, 重新格式化, 正常

猜想返回的response前存在不可見的特殊字元

於是將返回的response 字元串使用responseStr = responseStr .replaceAll("\\p{C}", ""配握) ; 問題解決。

Note: \p{C} - 不可見的控制字元
http://www.regular-expressions.info/unicode.html 

J. 如何處理XML中的特殊字元

在XML中,有一些符號作為XML 的標記符號,一些特定情況下,屬性值必須帶有這內些特殊符號。下面主容要是講解一些常用的特殊符號的處理

例一:雙引號的使用。

雙引號作為XML 屬性值的開始結束符號,因此無法在值中直接使用"".處理方式可以分為兩種。

a:屬性值中沒有'(單引號),那麼可以用單引號'' 作為屬性值的開始結束符號

<add key="IPhone" value="apple"/> ...屬性值為("apple").

解決:<add key="IPhone" value=』"apple"『/>

b:屬性值中有'(單引號),也有雙引號。如...屬性值為("'apple").

<add key="IPhone" value="&quot;&apos;apple&quot;"/>

下表為 XML 標記使用的字元列出了五種內置實體。

如果字元可能會使 XML 分析器錯誤地解釋文檔結構,請使用實體,而不要鍵入字元。&apos; 和 &quot; 實體引用最常用在屬性值中。

閱讀全文

與xml解析特殊字元處理java相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接