Xml报文格式如下所示:
 
<body>
<FILENAME></FILENAME>
<records>20</records>
<record>
<ODYWLZBZ>01</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>116000</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>03331900040084502</ODDFACCT>
<ODJDACNA>上海xxxxxxx有限公司</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320099900N400000387</ODTRANNO>
<ODZHAIYA></ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>2000</ODCLZCZE>
<ODCHAFEE>4</ODCHAFEE>
<ODDFACCT>320006608018170046228</ODDFACCT>
<ODJDACNA>江苏**管理有限公司</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000036</ODTRANNO>
<ODZHAIYA>保证金-雨花梅山</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>01</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>5000</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>0133102800000019</ODDFACCT>
<ODJDACNA>支付宝</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320099900N330001644</ODTRANNO>
<ODZHAIYA></ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>4956</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>622452011100064</ODDFACCT>
<ODJDACNA>蒋**</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000028</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>11400</ODCLZCZE>
<ODCHAFEE>8</ODCHAFEE>
<ODDFACCT>6228480399624888679</ODDFACCT>
<ODJDACNA>车**</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000041</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>100000</ODCLZCZE>
<ODCHAFEE>8</ODCHAFEE>
<ODDFACCT>7321010182600073879</ODDFACCT>
<ODJDACNA>南京**工程研究院</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000034</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record>
<ODYWLZBZ>02</ODYWLZBZ>
<ODCAACNO>6224520111002185938</ODCAACNO>
<ODCLNAME>未来数据银行</ODCLNAME>
<ODJIGODM>320188990</ODJIGODM>
<ODCLZCZE>252</ODCLZCZE>
<ODCHAFEE>0</ODCHAFEE>
<ODDFACCT>6230660131001657577</ODDFACCT>
<ODJDACNA>杰</ODJDACNA>
<ODTRDATE>20170716</ODTRDATE>
<ODTRANNO>320103001K010000040</ODTRANNO>
<ODZHAIYA>转款</ODZHAIYA>
</record>
<record> <ODYWLZBZ>02</ODYWLZBZ>……………………………………
 
/**
函数说明:
获取循环节点值,并保存在二维数组;说明:保存在二维数组为了方便展示;
参数说明:
Xml为传入的xml报文,node为需要获取的循环节点值“record”;
*/
function nodesParse(xml,node){
Trc.Info("循环获取record");
var xmlDom=new ActiveXObject("Microsoft.XMLDOM") ;
if(xmlDom == null){
Trc.Info("create xml object failure");
return "failure";
}
try{
xmlDom.async = "false";
xmlDom.loadXML(xml) ;
Trc.Info("追踪xml"+xml);
var elements = xmlDom.getElementsByTagName("rsp");// 获取根节点集合;
Trc.Info("elements ="+elements+"length="+elements.length);
var body=elements[0].getElementsByTagName("body");//获取body节点集合;
Trc.Info("body "+body+"length="+body.length);
var result=body[0].getElementsByTagName(node); //获取根节点下的某子节点集合;
Trc.Info("result ="+result+"length="+result.length);
var col=[];
for(var i=0;i<result.length;i++){ //循环获取每一个record的子节点文本值;
Trc.Info("into the first for loop ");
var row=[];
var ChiledNodes=result[i].childNodes;//第I个记录record的所有子节点;
Trc.Info("ChiledNodes="+ChiledNodes+"ChiledNodes length="+ChiledNodes.length);
for(var j=0;j<ChiledNodes.length;j++){ // 循环获取每个子节点的值;
Trc.Info("into the second for loop ");
var test=ChiledNodes[j].childNodes;
if(test.length>0){
row[j]=ChiledNodes[j].childNodes[0].nodeValue;
Trc.Info("row["+j+"]="+row[j]);
}else{
row[j]="";
Trc.Info("row["+j+"]="+row[j]);
}
 
}
Trc.Info("out of the second for loop");
 
col[i]=row; // col保存所有的记录;
Trc.Info("out of the second for loop");
}
Trc.Info("所有的记录col="+col);
return col;
}catch(err){
Trc.Info("xml : " + xml);
Trc.Info("tagname : " + node);
Trc.Error("runtime err: " + err.description);
}
 
}
 
- /**
函数说明:
解析xml报文的函数,并获取元素值;
参数说明:
Xml为传入需要解析的xml报文体;target为需要获取的元素节点;
*/
function xmlParse(xml,target){
 
Trc.Info("MsgParse.js xmlParse");
var xmlDom=new ActiveXObject("Microsoft.XMLDOM") ;
if(xmlDom == null){
Trc.Info("create xml object failure");
return "failure";
}
try{
xmlDom.async = "false";
xmlDom.loadXML(xml) ;
var elements = xmlDom.getElementsByTagName("rsp");
var value = elements[0].getElementsByTagName(target)[0].firstChild.nodeValue;
return value;
}catch(err){
Trc.Info("xml : " + xml);
Trc.Info("tagname : " + target);
Trc.Error("runtime err: " + err.description);
}
return "failure";
}
 
 

如何获取xml循环体报文内容的更多相关文章

  1. 获取XML数据

    http://www.w3school.com.cn/xml/xml_elements.asp <?xml version="1.0" encoding="gb23 ...

  2. getResources().getXml()获取xml

    获取XML文件的基本思路是,通过getResources().getXml()获的XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开头还是结尾,是某个标签的开始还是 ...

  3. 使用GridView来获取xml文件数据

    在任何一个系统中,数据的读取和编辑都是至关重要的.无论你是CS还是BS,都需要对数据进行操作.其实 我们可以发现,很多软件和系统最终都是对于数据库中数据的处理.之前在CS的学习过程中我们接触到了很多 ...

  4. .NetCore获取json文件配置内容

    .netcore中的数据配置及内容用了json文件代替了之前framework的xml文件,那么json中的数据该怎么获取呢?下面讲解json文件在.net core中的获取方法. 首先,新建一个.n ...

  5. WebService,ASMX文件使用XML格式数据传递参数、验证与获取XML格式返回值的一种方式

    1:首先WebService方法定义,每个方法定义两个参数,一个用于验证权限,string格式的XML文本用于传输数据.最终目的实现,WebService方法,验证权限,获取XML数据,处理之后返回X ...

  6. 使用dom解析器对xml文档内容进行增删查改

    直接添代码: XML文档名称(one.xml) <?xml version="1.0" encoding="UTF-8" standalone=" ...

  7. 转 使用utl_http获取某个http页面内容

    #########1.ACL详细解释: 11g 对于XDB  UTL_HTTP or others package 的权限管控进一步加强,如果需要使用到XDB 以下包 UTL_TCP, UTL_SMT ...

  8. PHP生成和获取XML格式数据

    在做数据接口时,我们通常要获取第三方数据接口或者给第三方提供数据接口,而这些数据格式通常是以XML或者JSON格式传输,本文将介绍如何使用PHP生成XML格式数据供第三方调用以及如何获取第三方提供的X ...

  9. XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)

    1.XML 格式规范: ① 必须有一个根元素 ② 不可有空格.不可以数字或.开头.大小写敏感 ③ 不可交叉嵌套 ④ 属性双引号(浏览器自动修正成双引号了) ⑤ 特殊符号要使用实体 ⑥ 注释和HTML一 ...

随机推荐

  1. dedecms用keyword标签调用含有某一关键词的文章

    前面我们探讨了调用{dede:likewords}为dedecms添加相关搜索词,如果要调用含有某一关键词的文章可以实现吗?比如ytkah的网站有很多文章中含有“微信”的词,那么想在网站首页.频道页. ...

  2. 多作者wordpress博客彻底屏蔽可视化编辑

    如果你的wordpress博客支持多作者,但是难免有些作者会加入过多的链接,怎么办呢?可以考虑屏蔽可视化编辑 在 functions.php 添加如下代码即可: add_filter('user_ca ...

  3. Python3学习之路~2.2 简单的购物车程序

    程序:购物车程序 需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 代码 ...

  4. latex 安装和使用

    1:下载 texlivewindows 版  http://tug.org/texlive/acquire-netinstall.html 2:双击exe文件进行安装,安装时选择 将路径添加到环境变量 ...

  5. 搭建私有yum仓库

    需要工具: centos7 nginx rsync 新建文件夹存放镜像数据 mkdir /data mkdir /data/yum_data 同步数据 国内开源镜像站没有几个支持rsync,科技大学的 ...

  6. http接口自动化测试框架实现

    一.测试需求描述 对服务后台一系列的http接口功能测试. 输入:根据接口描述构造不同的参数输入值 输出:XML文件 eg:http://xxx.com/xxx_product/test/conten ...

  7. Must be between v0 and v15, inclusive解决办法

    invoke-static 改为invoke-static/range

  8. file_get_post实现post请求

    function Post($url, $post = null){     $context = array();     if (is_array($post)) {       ksort($p ...

  9. c/c++的预处理定义 Stringizing Operator (#) Charizing Operator (#@) Token-Pasting Operator (##)

    c/c++的预处理定义:一.Stringizing Operator (#)在c和c++中数字标志符#被赋予了新的意义,即字符串化操作符.其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名 ...

  10. LinkedList详解

    一.LinkedList的介绍与特点. 1.继承实现关系. 实现了双端队列接口Deque,因此具有双端队列的功能:addFirt,addLast,offerFirt,offerLast,removeF ...