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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

Java用SAX解析XML

發布時間:2023/12/20 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java用SAX解析XML 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

Myhandler

package?com.heli.xml.sax;/***?用SAX解析XML的Handler*/ import?java.util.ArrayList; import?java.util.HashMap; import?java.util.List; import?java.util.Map;import?org.xml.sax.Attributes; import?org.xml.sax.SAXException; import?org.xml.sax.helpers.DefaultHandler;public?class?Myhandler?extends?DefaultHandler?{//?存儲正在解析的元素的數據private?Map<String,?String>?map?=?null;//?存儲所有解析的元素的數據private?List<Map<String,?String>>?list?=?null;//?正在解析的元素的名字String?currentTag?=?null;//?正在解析的元素的元素值String?currentValue?=?null;//?開始解析的元素String?nodeName?=?null;public?Myhandler(String?nodeName)?{//?TODO?Auto-generated?constructor?stubthis.nodeName?=?nodeName;}public?List<Map<String,?String>>?getList()?{return?list;}//?開始解析文檔,即開始解析XML根元素時調用該方法@Overridepublic?void?startDocument()?throws?SAXException?{//?TODO?Auto-generated?method?stub//System.out.println("--startDocument()--");//?初始化Maplist?=?new?ArrayList<Map<String,?String>>();}//?開始解析每個元素時都會調用該方法@Overridepublic?void?startElement(String?uri,?String?localName,?String?qName,?Attributes?attributes)?throws?SAXException?{//?TODO?Auto-generated?method?stub//?判斷正在解析的元素是不是開始解析的元素//System.out.println("--startElement()--"?+?qName);if?(qName.equals(nodeName))?{map?=?new?HashMap<String,?String>();}//?判斷正在解析的元素是否有屬性值,如果有則將其全部取出并保存到map對象中,如:<person?id="00001"></person>if?(attributes?!=?null?&&?map?!=?null)?{for?(int?i?=?0;?i?<?attributes.getLength();?i++)?{map.put(attributes.getQName(i),?attributes.getValue(i));}}currentTag?=?qName;?//?正在解析的元素}//?解析到每個元素的內容時會調用此方法@Overridepublic?void?characters(char[]?ch,?int?start,?int?length)?throws?SAXException?{//?TODO?Auto-generated?method?stub//System.out.println("--characters()--");if?(currentTag?!=?null?&&?map?!=?null)?{currentValue?=?new?String(ch,?start,?length);//?如果內容不為空和空格,也不是換行符則將該元素名和值和存入map中if?(currentValue?!=?null?&&?!currentValue.trim().equals("")?&&?!currentValue.trim().equals("\n"))?{map.put(currentTag,?currentValue);//System.out.println("-----"?+?currentTag?+?"?"?+?currentValue);}//?當前的元素已解析過,將其置空用于下一個元素的解析currentTag?=?null;currentValue?=?null;}}//?每個元素結束的時候都會調用該方法@Overridepublic?void?endElement(String?uri,?String?localName,?String?qName)?throws?SAXException?{//?TODO?Auto-generated?method?stub//System.out.println("--endElement()--"?+?qName);//?判斷是否為一個節點結束的元素標簽if?(qName.equals(nodeName))?{list.add(map);map?=?null;}}//?結束解析文檔,即解析根元素結束標簽時調用該方法@Overridepublic?void?endDocument()?throws?SAXException?{//?TODO?Auto-generated?method?stub//System.out.println("--endDocument()--");super.endDocument();} }

SaxService

package?com.heli.xml.sax;/***?封裝解析業務類*/ import?java.util.List; import?java.util.Map;import?javax.xml.parsers.SAXParser; import?javax.xml.parsers.SAXParserFactory;public?class?SaxService?{public?static?List<Map<String,?String>>?ReadXML(String?uri,?String?NodeName)?{try?{//?創建一個解析XML的工廠對象SAXParserFactory?parserFactory?=?SAXParserFactory.newInstance();//?創建一個解析XML的對象SAXParser?parser?=?parserFactory.newSAXParser();//?創建一個解析助手類Myhandler?myhandler?=?new?Myhandler("uncall");parser.parse(uri,?myhandler);return?myhandler.getList();}?catch?(Exception?e)?{e.printStackTrace();}?finally?{}return?null;} }

XmlSaxTest

package?com.heli.xml.sax;/***?程序入口*/import?java.util.ArrayList; import?java.util.HashMap; import?java.util.Iterator; import?java.util.Map;public?class?XmlSaxTest?{/***?@param?args*/public?static?void?main(String[]?args)?{ArrayList<Map<String,?String>>?list?=?(ArrayList<Map<String,?String>>)?SaxService.ReadXML("e:\\test.xml",?"class");for?(int?i?=?0;?i?<?list.size();?i++)?{HashMap<String,?String>?temp?=?(HashMap<String,?String>)?list.get(i);Iterator<String>?iterator?=?temp.keySet().iterator();while?(iterator.hasNext())?{String?key?=?iterator.next().toString();String?value?=?temp.get(key);System.out.println("key:"+key?+?"--value:"?+?value?);}}System.out.println("--------------------------------------");System.out.println(list.toString());}}

test.xml

<?xml?version="1.0"?encoding="utf-8"?> <uncall><result>1</result><OnClickCall><Response>success</Response><ActionID>123456</ActionID><Message>Originate?successfully?queued</Message></OnClickCall> </uncall>


轉載于:https://my.oschina.net/ydsakyclguozi/blog/493509

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java用SAX解析XML的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久人人插| 久艹视频在线 | av资源在线看 | 青青草视频网站 | 日韩亚洲在线观看 | 久久综合免费视频 | 亚洲av无码乱码在线观看性色 | 动漫av网| 熟妇人妻系列aⅴ无码专区友真希 | 欧美久久一区二区三区 | 免费黄色小说视频 | 99草在线视频 | 日韩一区二区精品 | 成人免费公开视频 | 日本欧美精品 | 鲁啊鲁在线视频 | 蜜臀在线观看 | 免费在线黄 | 国产成人综合一区二区三区 | 国产精品色哟哟 | 精品动漫一区二区三区在线观看 | 第色 | 中国黄色在线视频 | 蜜臀av无码精品人妻色欲 | 视频污在线观看 | 国产偷拍一区二区三区 | 九九自拍视频 | 欧美精品在欧美一区二区少妇 | 激情久久中文字幕 | 久久精品国产亚洲AV黑人 | 亚洲av人无码激艳猛片服务器 | 波多野结衣一区二区在线 | 国产aⅴ无码片毛片一级一区2 | 麻豆精品国产精华精华液好用吗 | 欧美熟妇精品一区二区蜜桃视频 | 亚洲精品aⅴ中文字幕乱码 国产精品调教视频 | 亚洲AV无码久久精品浪潮 | a级一片 | 日韩精品高清在线观看 | 色欧美片视频在线观看 | 九九热精品免费视频 | 他趴在我两腿中间添得好爽在线看 | 久久av资源网| 水蜜桃影库 | 国产成人一区二区三区小说 | 国av在线| 少妇逼逼 | 亚洲国产无线乱码在线观看 | 午夜影院美女 | 国产高清亚洲 | 日韩v在线 | 国产精品一区不卡 | 亚洲五月花 | 打开免费观看视频在线 | 久草视频网| 天天操天天干天天操 | 国产av无码专区亚洲av毛网站 | 国产ts人妖系列高潮 | 中文写幕一区二区三区免费观成熟 | 波多野结衣高清在线 | 卡一卡二视频 | 精品一区二区成人免费视频 | 日韩精品在线免费视频 | 尤物视频在线观看国产 | www.99爱 | 国产精品电影在线观看 | 久久久久一区二区三区 | 国产成人精品一区二区三区福利 | 自拍偷拍在线播放 | 永久免费在线视频 | 91精品国产乱码在线观看 | 天天艹日日艹 | 秋霞午夜影院 | 中文字幕一区二区三区久久久 | 精品欧美一区二区三区免费观看 | 精品蜜桃一区二区三区 | 国产一区av在线 | 国产一二三区av | 91肉色超薄丝袜脚交一区二区 | 久久久免费在线观看 | 成人a视频在线观看 | 男欢女爱久石 | 一区二区三区有限公司 | 国产乱淫av公 | 欧美亚洲丝袜 | 成人深夜福利 | 欧美精品xx| avtt中文字幕 | 尤物视频网站在线观看 | 999久久久国产精品 韩国精品一区二区 | 超碰在线免费 | www夜插内射视频网站 | 成人tv| 成人aaa| wwwa级片| 欧美少妇精品 | 一级特黄色大片 | 欧美伦理影院 | 爱情岛亚洲品质自拍极速福利网站 |