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. my.cnf 详解

    [client] port =3306 socket =/tmp/mysql.sock [mysqld] port =3306 socket =/tmp/mysql.sock basedir =/us ...

  2. (转)从零开始的Spring Session(一)

    Session和Cookie这两个概念,在学习java web开发之初,大多数人就已经接触过了.最近在研究跨域单点登录的实现时,发现对于Session和Cookie的了解,并不是很深入,所以打算写两篇 ...

  3. window7 触屏操作相关

    一.体系概述 1.Windows Touch Input 和 Gestures消息 Windows Touch消息特性 通过在执行期间的监听和解释来使能.下面的示例展示了Windows7 上消息是怎么 ...

  4. NSLog打印NSInteger老是有warning

    zSpecifies that a following [...] conversion specifier applies to a size_t or the corresponding sign ...

  5. testng入门教程4用TestNG执行case

    使用TestNG类执行测试用例.这个类的主入口点在TestNG的框架运行测试.用户可以创建自己的TestNG的对象,并调用它以许多不同的方式: 在现有的testng.xml 合成testng.xml, ...

  6. Java编写验证码

    Java后台代码(CheckCodeServlet.java) package web; import java.awt.Color; import java.awt.Font; import jav ...

  7. Liferay中request

    在liferay中的请求分为renderRequest和actionRequest这两种请求的方式,portletRequest的子类有三个1renderRequest,2EventRequest3C ...

  8. 018-DNS解析过程与配置DNS服务

  9. keras中TimeDistributed

    TimeDistributed这个层还是比较难理解的.事实上通过这个层我们可以实现从二维像三维的过渡,甚至通过这个层的包装,我们可以实现图像分类视频分类的转化. 考虑一批32个样本,其中每个样本是一个 ...

  10. Python: 没有switch-case语句

    初学Python语言,竟然很久才发现Python没有switch-case语句 官方的解释说,“用if... elif... elif... else序列很容易来实现 switch / case 语句 ...