亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

String與XML互轉以及從XML取節點值并修改的方法

2024-07-14 08:41:39
字體:
來源:轉載
供稿:網友

讀取xml文件生成Document對象

Document轉換成String類型串

String串轉成xml

已知xml節點取節點值

已知xml節點修改節點值

一個xml文件:

<?xml version="1.0" encoding="UTF-8"?><transaction> <body>  <request>   <tranTyp>批量業務現存</tranTyp>   <acctNm>0085213560</acctNm>   <acctNo>6225885517843413</acctNo>   <avlBal>201958.65</avlBal>   <acctTyp>0</acctTyp>   <tranTime>20170801101030</tranTime>   <currencyTyp>CNY</currencyTyp>   <tranDesc></tranDesc>   <bal>201958.65</bal>   <tranAmt>100000.00</tranAmt>  </request> </body> <header>  <msg>   <sndTm>101019</sndTm>   <msgCd>WCS0000200</msgCd>   <seqNb>632376531000009</seqNb>   <sndMbrCd>5200</sndMbrCd>   <rcvMbrCd>0000</rcvMbrCd>   <sndDt>20170821</sndDt>   <sndAppCd>CBS</sndAppCd>   <rcvAppCd>WCS</rcvAppCd>   <callTyp>SYN</callTyp>  </msg>  <ver>1.0</ver>  <pnt>   <sndTm>101216</sndTm>   <sndMbrCd>0000</sndMbrCd>   <rcvMbrCd>0000</rcvMbrCd>   <sndDt>20170809</sndDt>   <sndAppCd>ESB</sndAppCd>   <rcvAppCd>WCS</rcvAppCd>  </pnt> </header></transaction>

java實現實例:

package com.adtec.mq.client;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.InputStream;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import javax.xml.xpath.XPath;import javax.xml.xpath.XPathConstants;import javax.xml.xpath.XPathExpressionException;import javax.xml.xpath.XPathFactory;import org.w3c.dom.Document;import org.w3c.dom.Node;public class Test { /**  *   * @param document  *   Document對象(讀xml生成的)  * @return String字符串  * @throws Throwable  */ public String xmlToString(Document document) throws Throwable {  TransformerFactory ft = TransformerFactory.newInstance();  Transformer ff = ft.newTransformer();  ff.setOutputProperty("encoding", "GB2312");  ByteArrayOutputStream bos = new ByteArrayOutputStream();  ff.transform(new DOMSource(document), new StreamResult(bos));  return bos.toString(); } /**  *   * @param xml形狀的str串  * @return Document 對象  */ public Document StringTOXml(String str) {  StringBuilder sXML = new StringBuilder();  sXML.append(str);  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  Document doc = null;  try {   InputStream is = new ByteArrayInputStream(sXML.toString().getBytes("utf-8"));   doc = dbf.newDocumentBuilder().parse(is);   is.close();  } catch (Exception e) {   e.printStackTrace();  }  return doc; } /**  *   * @param document  * @return 某個節點的值 前提是需要知道xml格式,知道需要取的節點相對根節點所在位置  */ public String getNodeValue(Document document, String nodePaht) {  XPathFactory xpfactory = XPathFactory.newInstance();  XPath path = xpfactory.newXPath();  String servInitrBrch = "";  try {   servInitrBrch = path.evaluate(nodePaht, document);  } catch (XPathExpressionException e) {   e.printStackTrace();  }  return servInitrBrch; } /**  *   * @param document  * @param nodePath  *   需要修改的節點相對根節點所在位置  * @param vodeValue  *   替換的值  */ public void setNodeValue(Document document, String nodePath, String vodeValue) {  XPathFactory xpfactory = XPathFactory.newInstance();  XPath path = xpfactory.newXPath();  Node node = null;  ;  try {   node = (Node) path.evaluate(nodePath, document, XPathConstants.NODE);  } catch (XPathExpressionException e) {   e.printStackTrace();  }  node.setTextContent(vodeValue); } public static void main(String[] args) throws Throwable {  // 讀取xml文件,生成document對象  DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();  // 文件的位置在工作空間的根目錄(位置隨意,只要寫對就ok)  Document document = builder.parse(new File("a.xml"));  Test t = new Test();  // XML————》String  String str = t.xmlToString(document);  System.out.println("str:" + str);  // String ————》XML  Document doc = t.StringTOXml(str);  String nodePath = "/transaction/header/msg/sndMbrCd";  // getNodeValue  String nodeValue = t.getNodeValue(doc, nodePath);  System.out.println("修改前nodeValue:" + nodeValue);  // setNodeValue  t.setNodeValue(doc, nodePath, nodeValue + "hello");  System.out.println("修改后nodeValue:" + t.getNodeValue(doc, nodePath)); }}

測試結果:

str:<?xml version="1.0" encoding="UTF-8" standalone="no"?><transaction> <body>  <request>   <tranTyp>批量業務現存</tranTyp>   <acctNm>0085213560</acctNm>   <acctNo>6225885517843413</acctNo>   <avlBal>201958.65</avlBal>   <acctTyp>0</acctTyp>   <tranTime>20170801101030</tranTime>   <currencyTyp>CNY</currencyTyp>   <tranDesc/>   <bal>201958.65</bal>   <tranAmt>100000.00</tranAmt>  </request> </body> <header>  <msg>   <sndTm>101019</sndTm>   <msgCd>WCS0000200</msgCd>   <seqNb>632376531000009</seqNb>   <sndMbrCd>5200</sndMbrCd>   <rcvMbrCd>0000</rcvMbrCd>   <sndDt>20170821</sndDt>   <sndAppCd>CBS</sndAppCd>   <rcvAppCd>WCS</rcvAppCd>   <callTyp>SYN</callTyp>  </msg>  <ver>1.0</ver>  <pnt>   <sndTm>101216</sndTm>   <sndMbrCd>0000</sndMbrCd>   <rcvMbrCd>0000</rcvMbrCd>   <sndDt>20170809</sndDt>   <sndAppCd>ESB</sndAppCd>   <rcvAppCd>WCS</rcvAppCd>  </pnt> </header></transaction>修改前nodeValue:5200修改后nodeValue:5200hello

以上這篇String與XML互轉以及從XML取節點值并修改的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区黄色| 91亚洲国产精品| 一区二区欧美久久| 欧美日韩在线一区| 欧美成人黄色小视频| 91精品国产一区| 亚洲第一中文字幕在线观看| 欧美另类在线观看| 欧美日韩视频免费播放| 欧美精品激情在线| 一区二区在线视频| 亚洲国产另类 国产精品国产免费| 国产97在线|亚洲| 国产999在线观看| 国产精品人人做人人爽| 18性欧美xxxⅹ性满足| 久久久久久久久91| 亚洲国产美女久久久久| 91国产美女在线观看| 久久av红桃一区二区小说| 欧美日韩午夜剧场| 国产一区二区日韩精品欧美精品| 色噜噜狠狠狠综合曰曰曰88av| 国产精品91在线观看| 亚洲综合中文字幕在线| 欧美激情精品久久久久久| 国产精品爱久久久久久久| 精品中文字幕在线观看| 日韩亚洲成人av在线| xvideos成人免费中文版| 日韩av成人在线| 国产精品老女人视频| 日韩精品日韩在线观看| 国产精品久久久久aaaa九色| 美女av一区二区| 日韩在线资源网| 国产香蕉一区二区三区在线视频| 欧美在线视频播放| 欧美在线xxx| 日产精品久久久一区二区福利| 欧美激情国产精品| 亚洲亚裔videos黑人hd| 国产精品免费一区二区三区都可以| 亚洲品质视频自拍网| 色悠久久久久综合先锋影音下载| 国产狼人综合免费视频| 日韩中文字幕欧美| 亚洲精品一区二区三区不| 怡红院精品视频| 久久躁日日躁aaaaxxxx| 国产一区二区三区在线观看网站| 不卡毛片在线看| 日韩亚洲成人av在线| 欧美日韩国产在线看| 日韩在线观看电影| 久久精品国产69国产精品亚洲| 欧美性高潮在线| 91精品在线国产| 中文字幕精品在线| 97超级碰在线看视频免费在线看| 国外日韩电影在线观看| 另类少妇人与禽zozz0性伦| 不卡中文字幕av| 欧美激情视频一区二区三区不卡| 91精品国产乱码久久久久久久久| 精品久久久久久亚洲精品| 国产精品久久久久久久久久久久| 亚洲精品二三区| 91精品国产综合久久香蕉922| 欧美在线视频观看免费网站| 91免费看片在线| 日本一区二区在线免费播放| 久久精品国产69国产精品亚洲| 亚洲黄在线观看| 国模叶桐国产精品一区| 国产精品久久久久久久久| 精品中文视频在线| 日产日韩在线亚洲欧美| 亚洲欧洲av一区二区| 精品成人在线视频| 成人羞羞国产免费| …久久精品99久久香蕉国产| 久久久久久久久综合| 精品动漫一区二区| 成人444kkkk在线观看| 91国偷自产一区二区三区的观看方式| 日本精品免费观看| 久久国产精品电影| 欧美成人午夜剧场免费观看| 国产精品aaa| 亚洲国产高清福利视频| 欧美日韩一区二区精品| 国产精品成人av性教育| 中文字幕视频一区二区在线有码| 亚洲精品xxx| 最近2019中文字幕在线高清| 国产午夜精品一区理论片飘花| 欧美裸体xxxx极品少妇| 亚洲欧美日韩一区二区三区在线| 中文字幕精品www乱入免费视频| 国产欧美日韩91| 久久精品视频在线| 91av在线精品| 免费91麻豆精品国产自产在线观看| 日韩欧美亚洲成人| 色噜噜狠狠色综合网图区| 精品国产91乱高清在线观看| 日韩av色在线| 亚洲欧美另类国产| 亚洲a级在线观看| 成人在线一区二区| 亚洲自拍偷拍色图| 久久久成人的性感天堂| 久久成人综合视频| 亚洲 日韩 国产第一| 最近中文字幕日韩精品| 亚洲一区二区三区乱码aⅴ| 国产成人涩涩涩视频在线观看| 久久久国产精品x99av| 性金发美女69hd大尺寸| 亚洲天堂成人在线视频| 欧美性猛交xxxx乱大交| 色777狠狠综合秋免鲁丝| 精品调教chinesegay| 91夜夜未满十八勿入爽爽影院| 91精品久久久久久久久久另类| 亚洲高清免费观看高清完整版| 亚洲午夜av久久乱码| 日韩av在线影院| 国产激情视频一区| 动漫精品一区二区| 国产美女扒开尿口久久久| 爽爽爽爽爽爽爽成人免费观看| 欧美午夜精品久久久久久久| 日韩精品在线观看网站| 国产亚洲视频中文字幕视频| 91亚洲精品久久久| 日韩欧美aⅴ综合网站发布| 日韩女优人人人人射在线视频| 中文字幕欧美视频在线| 国产精品丝袜久久久久久高清| 成人午夜两性视频| 日韩视频在线一区| 69av成年福利视频| 欧美成人性色生活仑片| 国产a级全部精品| 久久福利视频网| 久久久久久久久久久网站| 中文字幕成人精品久久不卡| 在线看片第一页欧美| 国产91色在线免费| 国产一区二区三区免费视频| 亚洲国产成人在线视频| 欧美日韩国产精品一区| 欧美激情精品久久久久久久变态| 成人伊人精品色xxxx视频| 国产69久久精品成人| 成人乱色短篇合集| 欧美精品电影免费在线观看| 日韩av片永久免费网站| 亚洲免费av网址| 亚洲国产黄色片| 国产精品香蕉国产| 18久久久久久|