如何截取一段XML

近期碰到一个XML截取一段的问题,研究了一下。分享分享
<?xml version="1.0"  encoding="GBK"?>
<return>
	<result>104</result>
	<info>成功接收到消息,信息已返回</info>
	<service>
		<arguments operate="ApplyPNRService" entityName="PNREntity">
			<param name="records" type="Dictionary">
				<param name="record" type="Dictionary">
					<param name="FLOW_ID" type="String">19381</param>
					<param name="BILL_ID" type="String">18351</param>
					<param name="SEET_CODE" type="String">null</param>
					<param name="FLAG" type="String">N</param>
					<param name="REMARK" type="String">
						温馨提示					</param>
					<param name="BUSINESS_TYPE" type="String" />
					<param name="ASSIGNEE_AIRCOMPANY_CODE"
						type="String">
						哈哈
					</param>
					<param name="BOOK_COMPANY" type="String" />
				</param>
			</param>
		</arguments>
	</service>
</return>
现在我要截取中的一段,可以采用XPATH+DOM4J的方式来实现
比如上面的XML,我要截取其中的
<param name="record" type="Dictionary">
	<param name="FLOW_ID" type="String">19381</param>
	<param name="BILL_ID" type="String">18351</param>
	<param name="SEET_CODE" type="String">null</param>
	<param name="FLAG" type="String">N</param>
	<param name="REMARK" type="String">温馨提示</param>
	<param name="BUSINESS_TYPE" type="String" />
	<param name="ASSIGNEE_AIRCOMPANY_CODE" type="String">哈哈</param>
	<param name="BOOK_COMPANY" type="String" />
</param>
 解析代码如下:
1:将整个XML文件以String类型的方式传入进来
2:创建一个变量,用来接收返回值
3:创建一个Document对象,即org.dom4j.Document = DocumentHelper.parseText(T)
4:获取该被劫取文档的开头,使用XPATH去获取,即
String xpath = "/return/service/arguments/param/param[@name='record']"
5:读取节点,即
org.dom4j.Element ele = (org.dom4j.Element)ment.selectSingleNode(xpath);
6:使用一下XML方法转换一下
reXml = ele.asXML();
 
详细代码如下:
String reXml = null;
  try {
   org.dom4j.Document ment = DocumentHelper.parseText(xml);
   String xpath = "/return/service/arguments/param/param[@name='record']";
   org.dom4j.Element ele = (org.dom4j.Element)ment.selectSingleNode(xpath);
   reXml = ele.asXML();
  } catch (Exception e) {
   // TODO: handle exception
  }
  return reXml;

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值