?
/* 说明:在javaweb工程中,很多后台服务返回的都是XML字符串,然后前端把XML字符串再转换成XMLDOM对象,然后操作XMLDOM对象获取相关的值。 这个组件,不是针对某个节点使用的,而是作用域整个XMLDOM文档对象整体上,总体来说分两大部分: 1.打印XMLDOM对象的结构(即包含哪些子节点,子节点的名称和值,以及子节点包含的所有属性)。 2.打印XMLDOM对象的全部文本,类似于XMLDOM对象的toString()方法一样,可以打印所有内容:包括节点名称,节点值,节点属性以及注释。 其他:此组件主要介绍是三个方法: 1.createXmlDOM 2.JSLogger.log 3.JSLogger.logXML 具体是方法说明和使用方法,详见下边。 */
?
?
?#js脚本代码(完整代码请看附件)
?
/* * 将字符串转化成XMLDom对象 * @param xmlStr xml字符串 */ function createXmlDOM(xmlStr){ var xmlDom = null; if (navigator.userAgent.indexOf("MSIE") > 0){//IE only xmlDom=new ActiveXObject("Microsoft.XMLDOM"); xmlDom.async="false"; xmlDom.loadXML(xmlStr); }else{//FF,Chrome 等 xmlDom=(new DOMParser()).parseFromString(xmlStr,"text/xml"); } return xmlDom; } //TODO 测试数据1 var xmlString = '<TaskinstanceInfo name="djd" sex="boy">'; xmlString+='<pkid>2919</pkid>'; xmlString+='<taskdefineId>2</taskdefineId>'; xmlString+='<taskdefineName>林业资源</taskdefineName>'; xmlString+='<enodeTaskinsId>0</enodeTaskinsId>'; xmlString+='<taskStatus>COMPLETE</taskStatus>'; xmlString+='<startTime>2012-07-10 15:34:12.0 CST</startTime>'; xmlString+='<lastCompleteTime>2012-07-11 12:00:00.0 CST</lastCompleteTime>'; xmlString+='<filePath>D:\\upload\\test文件</filePath>'; xmlString+='<fileSize>102400</fileSize>'; xmlString+='<fileFormat>E00</fileFormat>'; xmlString+='<processInfo>中心处理中</processInfo>'; xmlString+='<childsss><son><sex>boy</sex><age>23</age></son></childsss>'; xmlString+='<transportType>FTP</transportType>'; xmlString+='<dataType>SPATIALDATA</dataType>'; xmlString+='<taskSourceIp>172.16.10.16</taskSourceIp>'; xmlString+='<exchangeNodeId>2</exchangeNodeId>'; xmlString+='<taskSourceDesc>null</taskSourceDesc>'; xmlString+='<taskCreaterId>4</taskCreaterId>'; xmlString+='<taskCreaterName>Tite</taskCreaterName>'; xmlString+='<taskCreaterDept>国土资源厅</taskCreaterDept>'; xmlString+='<localSourceId>d388f9d1-9453-4313-b1a2-c99fe1f84856</localSourceId>'; xmlString+='<localCatalogId>0c091601-eb5c-4747-85ee-046c358fa0ac</localCatalogId>'; xmlString+='<tranFileFormat>GDB</tranFileFormat>'; xmlString+='<sequenceState>VALID</sequenceState>'; xmlString+='<orderIndex>3</orderIndex>'; xmlString+='</TaskinstanceInfo>'; //TODO 测试数据2 var xml =""; //xml += '<?xml version="1.0" encoding="UTF-8" ?>'; xml += '<list>'; xml += '<TaskinstanceActivity name="djd" sex="boy">'; xml += '<pkid>62</pkid>'; xml += '<!-- 任务实例ID -->'; xml += '<taskinstanceId>1</taskinstanceId>'; xml += '<!-- 任务类型-->'; xml += '<taskType>EXCHANGENODEUPLOADxml</taskType>'; xml += '<!-- 交换节点ID -->'; xml += '<exchangeNodeId>3</exchangeNodeId>'; xml += '<!-- 活动状态 -->'; xml += '<activityStatus>DOWNLOAD_RECEIVEBROADCAST</activityStatus>'; xml += '<!-- 处理人员ID -->'; xml += '<userId name="djd" sex="boy">43</userId>'; xml += '<!-- 处理人员名称 -->'; xml += '<userName><son><sex>boy</sex><age>23</age></son></userName>'; xml += '<!-- 处理信息 -->'; xml += '<processInfo>数据上传任务启动</processInfo>'; xml += '<!-- 消息方向 -->'; xml += '<messageDirection>EXCHANGENODE2CENTER</messageDirection>'; xml += '<!-- 任务活动类型 -->'; xml += '<activityType>BUSINESS</activityType>'; xml += '<!-- 活动创建时间 -->'; xml += '<activityDate>2012-07-14 21:12:00.0 CST</activityDate>'; xml += '<!-- 消息体,消息体内容未示例,不代表真实数据 -->'; xml += '<messageBody>{id:1, name: "Tite"}</messageBody>'; xml += '<!-- 该流程是否成功执行, true表示成功, false表示失败 -->'; xml += '<activitySucceed>true</activitySucceed>'; xml += '<!-- 状态,VALID(有效),INVALID(无效) -->'; xml += '<sequenceState>bbbbbbbbbbb</sequenceState>'; xml += '<!-- 序号 -->'; xml += '<orderIndex>aaaaaaaaaaaaa</orderIndex>'; xml += '</TaskinstanceActivity>'; xml += '<TaskinstanceActivity name="djd" sex="boy">'; xml += '<messageDirection>AAAAAAAAAA</messageDirection>'; xml += '<messageBody name="djd" sex="boy">BBBBBBBBB</messageBody>'; xml += '<activitySucceed>CCCCCCCC</activitySucceed>'; xml += '<sequenceState>DDdddddddd</sequenceState>'; xml += '<orderIndex>EEEEEEEEEEEEe</orderIndex>'; xml += '</TaskinstanceActivity>'; xml += '</list>'; var domObj2 = createXmlDOM(xmlString); JSLogger.logXML(domObj2); var domObj = createXmlDOM(xml); JSLogger.logXML(domObj); var first = domObj.getElementsByTagName("TaskinstanceActivity")[0]; JSLogger.log(first); var first1 = domObj.getElementsByTagName("TaskinstanceActivity")[0]; JSLogger.logXML(first1);?
?
?
?
?
?
附件图片是效果图:上部分是打印XML的结构,下半部是打印XML文档的全部内容。
?
rar附件是演示的源码。
?
?
?
?
?
?
?
?
?
愤怒的coder - XML是王道。
?