日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

DOM方式进行的XML文件、Document、String之间的相互转换

發布時間:2024/4/17 asp.net 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DOM方式进行的XML文件、Document、String之间的相互转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://kingxss.iteye.com/blog/1026954

XML文件test.xml:

Xml代碼 <?xml?version="1.0"?encoding="UTF-8"?><books><book><name>哈里波特</name><price>10</price><memo>這是一本很好看的書。</memo></book></books>?? <?xml version="1.0" encoding="UTF-8"?><books><book><name>哈里波特</name><price>10</price><memo>這是一本很好看的書。</memo></book></books>

?

java代碼:

Java代碼 import?java.io.*; ??
  • import?java.net.URI; ??
  • ??
  • import?javax.xml.parsers.*; ??
  • import?javax.xml.transform.*; ??
  • import?javax.xml.transform.dom.DOMSource; ??
  • import?javax.xml.transform.stream.StreamResult; ??
  • ??
  • import?org.w3c.dom.Document; ??
  • import?org.xml.sax.InputSource; ??
  • ??
  • import?com.sun.org.apache.xml.internal.serialize.*; ??
  • ??
  • /** ?
  • ?*?DOM方式操作XML ?
  • ?*? ?
  • ?*?@author?Watson?Xu ?
  • ?*?@date?2011-5-3?上午09:49:27 ?
  • ?*/??
  • public?class?OperateXMLByDOM?{ ??
  • ????/** ?
  • ?????*?將給定文件的內容或者給定?URI?的內容解析為一個?XML?文檔,并且返回一個新的?DOM?Document?對象 ?
  • ?????*? ?
  • ?????*?@param?filePath?文件所在路徑 ?
  • ?????*?@return?DOM的Document對象 ?
  • ?????*?@throws?Exception ?
  • ?????*/??
  • ????public?static?Document?xml2Doc(String?filePath)?{ ??
  • ????????DocumentBuilderFactory?factory?=?DocumentBuilderFactory.newInstance(); ??
  • ????????DocumentBuilder?builder?=?null; ??
  • ????????FileInputStream?inputStream?=?null; ??
  • ????????Document?doc?=?null; ??
  • ????????try?{ ??
  • ????????????builder?=?factory.newDocumentBuilder(); ??
  • ??
  • ????????????/*?通過文件方式讀取,注意文件保存的編碼和文件的聲明編碼要一致(默認文件聲明是UTF-8)?*/??
  • ????????????File?file?=?new?File(filePath); ??
  • ????????????doc?=?builder.parse(file); ??
  • ??
  • ????????????/*?通過一個URL方式讀取?*/??
  • ????????????URI?uri?=?new?URI(filePath);//filePath="http://java.sun.com/index.html" ??
  • ????????????doc?=?builder.parse(uri.toString()); ??
  • ??
  • ????????????/*?通過java?IO?流的讀取?*/??
  • ????????????inputStream?=?new?FileInputStream(filePath); ??
  • ????????????doc?=?builder.parse(inputStream); ??
  • ????????????return?doc; ??
  • ????????}?catch?(Exception?e)?{ ??
  • ????????????return?null; ??
  • ????????}?finally?{ ??
  • ????????????if?(inputStream?!=?null)?{ ??
  • ????????????????try?{ ??
  • ????????????????????inputStream.close(); ??
  • ????????????????}?catch?(IOException?e)?{ ??
  • ????????????????????return?null; ??
  • ????????????????} ??
  • ????????????} ??
  • ????????} ??
  • ????} ??
  • ??
  • ????/** ?
  • ?????*?Document?轉換為?String?并且進行了格式化縮進 ?
  • ?????*? ?
  • ?????*?@param?doc?XML的Document對象 ?
  • ?????*?@return?String ?
  • ?????*/??
  • ????public?static?String?doc2FormatString(Document?doc)?{??????? ??
  • ????????StringWriter?stringWriter?=?null; ??
  • ????????try?{ ??
  • ????????????stringWriter?=?new?StringWriter(); ??
  • ????????????if(doc?!=?null){ ??
  • ????????????????OutputFormat?format?=?new?OutputFormat(doc,"UTF-8",true); ??
  • ????????????????//format.setIndenting(true);//設置是否縮進,默認為true ??
  • ????????????????//format.setIndent(4);//設置縮進字符數 ??
  • ????????????????//format.setPreserveSpace(false);//設置是否保持原來的格式,默認為?false ??
  • ????????????????//format.setLineWidth(500);//設置行寬度 ??
  • ????????????????XMLSerializer?serializer?=?new?XMLSerializer(stringWriter,format); ??
  • ????????????????serializer.asDOMSerializer(); ??
  • ????????????????serializer.serialize(doc); ??
  • ????????????????return?stringWriter.toString(); ??
  • ????????????}?else?{ ??
  • ????????????????return?null; ??
  • ????????????} ??
  • ????????}?catch?(Exception?e)?{ ??
  • ????????????return?null; ??
  • ????????}?finally?{ ??
  • ????????????if(stringWriter?!=?null){ ??
  • ????????????????try?{ ??
  • ????????????????????stringWriter.close(); ??
  • ????????????????}?catch?(IOException?e)?{ ??
  • ????????????????????return?null; ??
  • ????????????????} ??
  • ????????????} ??
  • ????????} ??
  • ????} ??
  • ???? ??
  • ????/** ?
  • ?????*?Document?轉換為?String ?
  • ?????*? ?
  • ?????*?@param?doc?XML的Document對象 ?
  • ?????*?@return?String ?
  • ?????*/??
  • ????public?static?String?doc2String(Document?doc){ ??
  • ????????try?{ ??
  • ????????????Source?source?=?new?DOMSource(doc); ??
  • ????????????StringWriter?stringWriter?=?new?StringWriter(); ??
  • ????????????Result?result?=?new?StreamResult(stringWriter); ??
  • ????????????TransformerFactory?factory?=?TransformerFactory.newInstance(); ??
  • ????????????Transformer?transformer?=?factory.newTransformer(); ??
  • ????????????transformer.setOutputProperty(OutputKeys.INDENT,?"yes"); ??
  • ????????????transformer.transform(source,?result); ??
  • ????????????return?stringWriter.getBuffer().toString(); ??
  • ????????}?catch?(Exception?e)?{ ??
  • ????????????return?null; ??
  • ????????} ??
  • ????} ??
  • ??
  • ????/** ?
  • ?????*?String?轉換為?Document?對象 ?
  • ?????*? ?
  • ?????*?@param?xml?字符串 ?
  • ?????*?@return?Document?對象 ?
  • ?????*/??
  • ????public?static?Document?string2Doc(String?xml)?{ ??
  • ????????DocumentBuilderFactory?factory?=?DocumentBuilderFactory.newInstance(); ??
  • ????????DocumentBuilder?builder?=?null; ??
  • ????????Document?doc?=?null; ??
  • ????????InputSource?source?=?null; ??
  • ????????StringReader?reader?=?null; ??
  • ????????try?{ ??
  • ????????????builder?=?factory.newDocumentBuilder(); ??
  • ????????????reader?=?new?StringReader(xml); ??
  • ????????????source?=?new?InputSource(reader);//使用字符流創建新的輸入源 ??
  • ????????????doc?=?builder.parse(source); ??
  • ????????????return?doc; ??
  • ????????}?catch?(Exception?e)?{ ??
  • ????????????return?null; ??
  • ????????}?finally?{ ??
  • ????????????if(reader?!=?null){ ??
  • ????????????????reader.close(); ??
  • ????????????} ??
  • ????????} ??
  • ????} ??
  • ??
  • ????/** ?
  • ?????*?Document?保存為?XML?文件 ?
  • ?????*? ?
  • ?????*?@param?doc?Document對象 ?
  • ?????*?@param?path?文件路徑 ?
  • ?????*/??
  • ????public?static?void?doc2XML(Document?doc,?String?path)?{ ??
  • ????????try?{ ??
  • ????????????Source?source?=?new?DOMSource(doc); ??
  • ????????????Result?result?=?new?StreamResult(new?File(path)); ??
  • ????????????Transformer?transformer?=?TransformerFactory.newInstance().newTransformer(); ??
  • ????????????transformer.setOutputProperty(OutputKeys.INDENT,?"yes"); ??
  • ????????????transformer.transform(source,?result); ??
  • ????????}?catch?(Exception?e)?{ ??
  • ????????????return; ??
  • ????????} ??
  • ????} ??
  • ??
  • ????public?static?void?main(String[]?args)?{ ??
  • ????????Document?doc?=?xml2Doc("test.xml"); ??
  • ????????System.out.println(doc); ??
  • ????????System.out.println(doc2String(doc)); ??
  • ????????System.out.println(doc2FormatString(doc)); ??
  • ????????doc?=?string2Doc(doc2FormatString(doc)); ??
  • ????????doc2XML(doc,?"1.xml"); ??
  • ????} ??
  • }??
  • import java.io.*; import java.net.URI;import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document; import org.xml.sax.InputSource;import com.sun.org.apache.xml.internal.serialize.*;/*** DOM方式操作XML* * @author Watson Xu* @date 2011-5-3 上午09:49:27*/ public class OperateXMLByDOM {/*** 將給定文件的內容或者給定 URI 的內容解析為一個 XML 文檔,并且返回一個新的 DOM Document 對象* * @param filePath 文件所在路徑* @return DOM的Document對象* @throws Exception*/public static Document xml2Doc(String filePath) {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = null;FileInputStream inputStream = null;Document doc = null;try {builder = factory.newDocumentBuilder();/* 通過文件方式讀取,注意文件保存的編碼和文件的聲明編碼要一致(默認文件聲明是UTF-8) */File file = new File(filePath);doc = builder.parse(file);/* 通過一個URL方式讀取 */URI uri = new URI(filePath);//filePath="http://java.sun.com/index.html"doc = builder.parse(uri.toString());/* 通過java IO 流的讀取 */inputStream = new FileInputStream(filePath);doc = builder.parse(inputStream);return doc;} catch (Exception e) {return null;} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {return null;}}}}/*** Document 轉換為 String 并且進行了格式化縮進* * @param doc XML的Document對象* @return String*/public static String doc2FormatString(Document doc) { StringWriter stringWriter = null;try {stringWriter = new StringWriter();if(doc != null){OutputFormat format = new OutputFormat(doc,"UTF-8",true);//format.setIndenting(true);//設置是否縮進,默認為true//format.setIndent(4);//設置縮進字符數//format.setPreserveSpace(false);//設置是否保持原來的格式,默認為 false//format.setLineWidth(500);//設置行寬度XMLSerializer serializer = new XMLSerializer(stringWriter,format);serializer.asDOMSerializer();serializer.serialize(doc);return stringWriter.toString();} else {return null;}} catch (Exception e) {return null;} finally {if(stringWriter != null){try {stringWriter.close();} catch (IOException e) {return null;}}}}/*** Document 轉換為 String* * @param doc XML的Document對象* @return String*/public static String doc2String(Document doc){try {Source source = new DOMSource(doc);StringWriter stringWriter = new StringWriter();Result result = new StreamResult(stringWriter);TransformerFactory factory = TransformerFactory.newInstance();Transformer transformer = factory.newTransformer();transformer.setOutputProperty(OutputKeys.INDENT, "yes");transformer.transform(source, result);return stringWriter.getBuffer().toString();} catch (Exception e) {return null;}}/*** String 轉換為 Document 對象* * @param xml 字符串* @return Document 對象*/public static Document string2Doc(String xml) {DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = null;Document doc = null;InputSource source = null;StringReader reader = null;try {builder = factory.newDocumentBuilder();reader = new StringReader(xml);source = new InputSource(reader);//使用字符流創建新的輸入源doc = builder.parse(source);return doc;} catch (Exception e) {return null;} finally {if(reader != null){reader.close();}}}/*** Document 保存為 XML 文件* * @param doc Document對象* @param path 文件路徑*/public static void doc2XML(Document doc, String path) {try {Source source = new DOMSource(doc);Result result = new StreamResult(new File(path));Transformer transformer = TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(OutputKeys.INDENT, "yes");transformer.transform(source, result);} catch (Exception e) {return;}}public static void main(String[] args) {Document doc = xml2Doc("test.xml");System.out.println(doc);System.out.println(doc2String(doc));System.out.println(doc2FormatString(doc));doc = string2Doc(doc2FormatString(doc));doc2XML(doc, "1.xml");} }

    ?

    ?

    輸出的XML文件1.xml:

    Xml代碼
  • <?xml?version="1.0"?encoding="UTF-8"?standalone="no"?>??
  • <books>??
  • ????<book>??
  • ????????<name>哈里波特</name>??
  • ????????<price>10</price>??
  • ????????<memo>這是一本很好看的書。</memo>??
  • ????</book>??
  • </books>??
  • ?

    總結

    以上是生活随笔為你收集整理的DOM方式进行的XML文件、Document、String之间的相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 美女靠逼视频网站 | 青娱乐福利视频 | 中国少妇色 | 牛牛视频在线 | 国产奶水涨喷在线播放 | 麻豆视频播放 | 岳狂躁岳丰满少妇大叫 | 国产av电影一区二区 | 视频在线观看一区 | 欧美疯狂做受xxxxx高潮 | 日韩手机在线观看 | 国产永久免费无遮挡 | 久久91av| 欧美91精品久久久久国产性生爱 | 久久777| 精品动漫一区二区三区 | 黑人巨大精品一区二区在线 | 手机在线看永久av片免费 | 中文字幕乱码中文字幕 | 国产让女高潮的av毛片 | 日美av| 中文字幕一区二区人妻视频 | 裸体毛片 | 不卡视频在线播放 | 亚洲av日韩av永久无码下载 | 91理论片午午伦夜理片久久 | 91视频青青草 | 国产第一区第二区 | 性――交――性――乱 | 午夜激情福利 | 精品视频在线观看免费 | 肉丝袜脚交视频一区二区 | 女人叉开腿让男人桶 | 亚洲黄色片免费看 | sese亚洲 | 爱搞逼综合 | 18色av| 波多野在线视频 | 欧美不卡三区 | 在线观看av国产一区二区 | 阿的白色内裤hd中文 | 卡通动漫精品一区二区三区 | 日韩性网 | free性欧美hd精品4k | 久久精品国产99久久久 | av毛片在线播放 | 国产av无码专区亚洲av麻豆 | 台湾佬美性中文 | 青青操原| 天天干女人 | 国产日韩欧美视频在线 | 亚洲一区中文字幕永久在线 | 亚洲天堂va | 男人插女人免费视频 | 日本黄色片段 | 国产人久久人人人人爽 | 日韩精品一区二区三区视频 | 无码人妻精品一区二区中文 | 天天做天天看 | 国产1区二区 | 欧美激情 国产精品 | 日日狠狠| 国产不卡在线观看视频 | 老牛影视一区二区三区 | 日本强好片久久久久久aaa | 国产嫩草在线观看 | 亚洲熟妇av一区二区三区漫画 | 在线免费精品视频 | 97色干| 国产区一区二 | 爆操巨乳 | 国产成人自拍视频在线 | 国产精品中文字幕在线 | 大j8福利视频导航 | 欧美一区二区在线观看 | 女~淫辱の触手3d动漫 | 亚洲国产123 | 天天av天天干| 粉色视频免费 | 浴室里强摁做开腿呻吟男男 | 日本少妇激三级做爰在线 | 久久久久麻豆 | 成年人午夜影院 | 免费av地址 | www奇米影视com | 日本www高清视频 | 日本黄色美女视频 | 日韩精品一区二区亚洲av | 国产日视频 | 午夜视频 | 国内激情视频 | 黄色在线播放网站 | 黄色国产视频网站 | 欧美毛片在线观看 | 日韩亚洲精品在线 | 一本色道久久综合亚洲二区三区 | 婷婷色影院 | 日本精品三级 | 美女扒开腿让男人捅 |