博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
阅读量:4087 次
发布时间:2019-05-25

本文共 3698 字,大约阅读时间需要 12 分钟。

有如下的XML字符串:

SINFON
COL
Rack rates
RAK
WHL01
2013-12-02
2015-01-22
2
Tour Series
Room Charge
tour series/min. 5 tours
3
20
W
BRF
IBF
RAC
COL
0
100
100
LOW
要求从中读取rateCode节点的值,实现方法如下:

public static String getRateCodeFromXmlString(String xmlString)	 {  		 	String rateCodeMessage="";	        StringReader read = new StringReader(xmlString);  	        //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入  	        InputSource source = new InputSource(read);  	        //创建一个新的SAXBuilder  	        SAXBuilder saxbBuilder = new SAXBuilder();  	        try 	        {  	            //通过输入源构造一个Document  	            Document doc = saxbBuilder.build(source);  	            	            //取的根元素  	            Element root = doc.getRootElement();  	           	            List
node = root.getChildren(); for (int i = 0; i < node.size();i++) { Element element=(Element)node.get(i); if(element.getName().equals("rateCode")){ rateCodeMessage=element.getText(); } } return rateCodeMessage; } catch (JDOMException e) { e.printStackTrace(); return ""; } catch (IOException e) { e.printStackTrace(); return ""; } }

有如下XML字符串:

要求获取roomType属性的值,如果有多个,则以空格间隔,不获取重复的值。实现代码如下:

public static String getRoomTypeFromXmlString(String xmlString)	 {  		 	String roomTypeMessage="";	        StringReader read = new StringReader(xmlString);  	        //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入  	        InputSource source = new InputSource(read);  	        //创建一个新的SAXBuilder  	        SAXBuilder saxbBuilder = new SAXBuilder();  	        try 	        {  	            //通过输入源构造一个Document  	            Document doc = saxbBuilder.build(source);  	            	            //取的根元素  	            Element root = doc.getRootElement();  	           	            List
node = root.getChildren(); for (int i = 0; i < node.size();i++) { Element element=(Element)node.get(i); List
subNode = element.getChildren(); for(int j=0;j
subNode2 = subElement.getChildren(); for(int k=0;k
subNode3 = subElement2.getChildren(); for(int m=0;m
=0?"":(temp+" "); roomTypeMessage+=temp2; } } } } return roomTypeMessage; } catch (JDOMException e) { e.printStackTrace(); return ""; } catch (IOException e) { e.printStackTrace(); return ""; } }

转载地址:http://fkbii.baihongyu.com/

你可能感兴趣的文章
LeetCode练习-字符串-length-of-last-word
查看>>
分段和分页内存管理
查看>>
LeetCode练习-数组-palindrome-number
查看>>
C++ STL-Vector基本原理
查看>>
C++ STL-deque基本原理
查看>>
socket阻塞与非阻塞,同步与异步
查看>>
Linux下的五种I/O模型
查看>>
【整理】I/O复用模型中的 select、poll、epoll
查看>>
阿里巴巴2018年校招研发C++笔试
查看>>
TX1上安装mavros时,出现UAS:GeographicLib exception: File not readable...错误
查看>>
2020软考系统架构设计师总结
查看>>
CRC冗余校验码简介
查看>>
Vue 自定义菜单条及下拉框
查看>>
Vue ElementUI el-dialog 可拖拽指令
查看>>
Vue ElementUI el-collapse 改造:手风琴
查看>>
1.项目初始化
查看>>
2.申请 Cesium Ion 密钥
查看>>
3.场景初始化
查看>>
4.获取鼠标移动位置
查看>>
0.各类资料
查看>>