国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > XML > 正文

淺析XML字符串和XML DOCUMENT的相互轉換

2024-09-05 20:54:53
字體:
來源:轉載
供稿:網友
在做一般的XML數據交換過程中,我更樂意傳遞XML字符串,而不是格式化的XML Document。這就涉及到XML字符串和Xml Document的轉換問題,說白了這是個很簡單的問題,本文就各種XML解析器分別列舉如下,以方便自己今后查閱。

  一、使用最原始的javax.xml.parsers,標準的jdk api

// 字符串轉XML
String xmlStr = /"....../";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(is);

//XML轉字符串
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(/"encoding/",/"GB23121/");//解決中文問題,試過用GBK不行
ByteArrayOutputStream bos = new ByteArrayOutputStream();
t.transform(new DOMSource(doc), new StreamResult(bos));
String xmlStr = bos.toString();

這里的XML DOCUMENT為org.w3c.dom.Document

  二、使用dom4j后程序變得更簡單

// 字符串轉XML
String xmlStr = /"....../";
Document document = DocumentHelper.parseText(xmlStr);

// XML轉字符串
Document document = ...;
String text = document.asXML();

這里的XML DOCUMENT為org.dom4j.Document

  三、使用JDOM

JDOM的處理方式和第一種方法處理非常類似

//字符串轉XML
String xmlStr = /"...../";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
Document doc = (new SAXBuilder()).build(is);

//XML轉字符串
Format format = Format.getPrettyFormat();
format.setEncoding(/"gb2312/");//設置xml文件的字符為gb2312,解決中文問題
XMLOutputter xmlout = new XMLOutputter(format);
ByteArrayOutputStream bo = new ByteArrayOutputStream();
xmlout.output(doc,bo);
String xmlStr = bo.toString();

這里的XML DOCUMENT為org.jdom.Document

  四、JAVASCRIPT中的處理

//字符串轉XML
var xmlStr = /"...../";
var xmlDoc = new ActiveXObject(/"Microsoft.XMLDOM/");
xmlDoc.async=false;
xmlDoc.loadXML(xmlStr);
//可以處理這個xmlDoc了
var name = xmlDoc.selectSingleNode(/"/person/name/");
alert(name.text);

//XML轉字符串
var xmlDoc = ......;
var xmlStr = xmlDoc.xml

這里的XML DOCUMENT為javascript版的XMLDOM

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤阳县| 屯门区| 乐至县| 巴东县| 临桂县| 星子县| 兴海县| 安岳县| 峨山| 赞皇县| 南江县| 博罗县| 禄丰县| 长阳| 东港市| 寿阳县| 丰台区| 金塔县| 双柏县| 长寿区| 长治县| 澄江县| 三门县| 巴楚县| 东海县| 双桥区| 大安市| 茂名市| 镇安县| 黄浦区| 保康县| 汕头市| 若尔盖县| 循化| 正镶白旗| 赣榆县| 海伦市| 大连市| 突泉县| 平乡县| 重庆市|