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. mysql 使用存储引擎

    三 使用存储引擎 方法1:建表时指定引擎 指定innodb,不写默认也是innodb use 数据库先 create table innodb_t1(id int,name char)engine=i ...

  2. 【深入理解javascript】原型

    1.一切都是对象 一切(引用类型)都是对象,对象是属性的集合 typeof函数输出的一共有几种类型,在此列出: function show(x) { console.log(typeof(x)); / ...

  3. windows使用方法

    1:截图搜索英文单词:snipping tool 2: 修改语言,搜索language 3:关闭fn键,按键 fn+esc(fnlock).  就可以将fn关闭和开启.

  4. Choose the best route(迪杰斯特拉)

    通过做这题,发现了自己的问题很大,做题不是贴代码,而是要了解思想:这题考的是有一个起点的集合,求起点集合到一个终点的最短距离, 本来想用Floy的但一看map[1000][1000]超时,有向图,逆序 ...

  5. 识别真假搜索引擎(搜索蜘蛛)方法(baidu,google,Msn,sogou,soso等)

    http://www.useragentstring.com/pages/useragentstring.php 今天分析研究了两个网站的 Apache 日志,分析日志虽然很无聊,但却是很有意义的事情 ...

  6. Summary: difference between public, default, protected, and private key words

    According to Java Tutorial: Controlling Access to Members of a Class Access level modifiers determin ...

  7. Object之clone

    一.Object类中clone的实现. 二.clone详解. 看,clone()方法又是一个被声明为native的方法,因此,我们知道了clone()方法并不是Java的原生方法,具体的实现是有C/C ...

  8. 开发人员必备的几款bug管理工具

    Bug是软件开发过程中的“副产品”,也是开发人员最不想见到的状况.如果没有跟踪和梳理各种bug和问题并及时解决,项目就会花费非常多的时间,导致整个项目的重心偏移.如果在产品开发过程中,使用一个合适的B ...

  9. VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)

    上一节中鸡啄米讲了CDC类及其屏幕绘图函数,本节的主要内容是GDI对象之画笔CPen. GDI对象 在MFC中,CGdiObject类是GDI对象的基类,通过查阅MSDN我们可以看到,CGdiObje ...

  10. python3 集合的常用方法

    方法 意义 S.add(e) 在集合中添加一个新的元素e:如果元素已经存在,则不添加 S.remove(e) 从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误 S.dis ...