nodejs读取XML文件

来源:互联网 发布:手机按键功能测试软件 编辑:程序博客网 时间:2024/05/18 22:55

需求:原因三级分类(分类1->分类2->分类3)
参考:http://blog.csdn.net/meng512199/article/details/37923833 里面的chosen插件不是很好用
,所有在此基础上修改
classification_1.xml

<?xml version="1.0" encoding="utf-8"?><classification_1s>    <classification_1 ID="1">HW硬件类问题</classification_1>    <classification_1 ID="2">SW软件类问题</classification_1>    <classification_1 ID="3">AP装配制程问题</classification_1>    <classification_1 ID="4">OT其他类问题</classification_1></classification_1s>

classification_2.xml

<?xml version="1.0" encoding="utf-8"?><classification_2s>    <classification_2 ID="1" PID="1">cpu(hw)</classification_2>    <classification_2 ID="2" PID="1">emmc(hw)</classification_2>    <classification_2 ID="3" PID="1">ddr(hw)</classification_2>    <classification_2 ID="4" PID="1">lcm(hw)</classification_2>    <classification_2 ID="5" PID="1">tp(hw)</classification_2>    <classification_2 ID="6" PID="1">ccm(hw)</classification_2>    <classification_2 ID="7" PID="1">sensors(hw)</classification_2>    <classification_2 ID="8" PID="1">pa-rf类器件(hw)</classification_2>    <classification_2 ID="9" PID="1">指纹类器件(hw)</classification_2>    <classification_2 ID="10" PID="1">音频类器件(hw)</classification_2>    <classification_2 ID="11" PID="1">充电类器件(hw)</classification_2>    <classification_2 ID="12" PID="4">分析中(ot)</classification_2>    <classification_2 ID="12" PID="1">usb(hw)</classification_2>    <classification_2 ID="14" PID="1">sim(hw)</classification_2>    <classification_2 ID="15" PID="1">sd(hw)</classification_2>    <classification_2 ID="16" PID="1">背光ic(hw)</classification_2>    <classification_2 ID="17" PID="1">闪光灯驱动ic(hw)</classification_2>    <classification_2 ID="18" PID="1">pmic(hw)</classification_2>    <classification_2 ID="19" PID="1">电池(hw)</classification_2>    <classification_2 ID="20" PID="1">红外(hw)</classification_2>    <classification_2 ID="21" PID="1">主板其他问题(hw)</classification_2>    <classification_2 ID="22" PID="1">其他问题(hw)</classification_2>    <classification_2 ID="23" PID="1">wifi-bt-gps-fm(hw)</classification_2>    <classification_2 ID="24" PID="2">框架或APP问题(sw)</classification_2>    <classification_2 ID="25" PID="2">KERNEL-MD-BSP(sw)</classification_2>    <classification_2 ID="26" PID="1">CPU/DDR(hw)</classification_2>    <classification_2 ID="27" PID="2">bsptest工具本身问题(sw)</classification_2>    <classification_2 ID="28" PID="4">已确认不复现(ot)</classification_2>    <classification_2 ID="29" PID="3">装配问题(ap)</classification_2>    <classification_2 ID="30" PID="3">制程问题(ap)</classification_2>    <classification_2 ID="31" PID="4">无bug号无法追踪(ot)</classification_2>    <classification_2 ID="32" PID="4">人为低电(ot)</classification_2>    <classification_2 ID="33" PID="4">不是坏机(ot)</classification_2>    <classification_2 ID="34" PID="4">磁盘空间不足BBKLOG(ot)</classification_2></classification_2s>

classification_3.xml

<?xml version="1.0" encoding="utf-8"?><classification_3s>    <classification_3 ID="1" PID="1">cpu(hw)</classification_3>    <classification_3 ID="2" PID="2">emmc(hw)</classification_3>    <classification_3 ID="3" PID="3">ddr(hw)</classification_3>    <classification_3 ID="4" PID="4">lcm(hw)</classification_3>    <classification_3 ID="5" PID="5">tp(hw)</classification_3>    <classification_3 ID="6" PID="6">ccm(hw)</classification_3>    <classification_3 ID="7" PID="7">sensors(hw)</classification_3>    <classification_3 ID="8" PID="8">pa-rf类器件(hw)</classification_3>    <classification_3 ID="9" PID="9">指纹类器件(hw)</classification_3>    <classification_3 ID="10" PID="10">音频类器件(hw)</classification_3>    <classification_3 ID="11" PID="11">充电类器件(hw)</classification_3>    <classification_3 ID="12" PID="12">usb(hw)</classification_3>    <classification_3 ID="13" PID="3">sim(hw)</classification_3>    <classification_3 ID="14" PID="4">sd(hw)</classification_3>    <classification_3 ID="15" PID="5">背光ic(hw)</classification_3>    <classification_3 ID="16" PID="6">闪光灯驱动ic(hw)</classification_3>    <classification_3 ID="17" PID="7">pmic(hw)</classification_3>    <classification_3 ID="18" PID="8">电池(hw)</classification_3>    <classification_3 ID="19" PID="9">红外(hw)</classification_3>    <classification_3 ID="20" PID="10">主板其他问题(hw)</classification_3>    <classification_3 ID="21" PID="11">其他问题(hw)</classification_3>    <classification_3 ID="22" PID="12">cpu(sw)</classification_3>    <classification_3 ID="23" PID="3">emmc(sw)</classification_3>    <classification_3 ID="24" PID="4">ddr(sw)</classification_3>    <classification_3 ID="25" PID="5">lcm(sw)</classification_3>    <classification_3 ID="26" PID="6">tp(sw)</classification_3>    <classification_3 ID="27" PID="7">ccm(sw)</classification_3>    <classification_3 ID="28" PID="8">sensors(sw)</classification_3>    <classification_3 ID="29" PID="9">usb(sw)</classification_3>    <classification_3 ID="30" PID="10">sim(sw)</classification_3>    <classification_3 ID="31" PID="11">sd(sw)</classification_3>    <classification_3 ID="32" PID="12">背光ic(sw)</classification_3>    <classification_3 ID="33" PID="3">闪光灯驱动ic(sw)</classification_3>    <classification_3 ID="34" PID="4">pmic(sw)</classification_3>    <classification_3 ID="35" PID="5">电池(sw)</classification_3>    <classification_3 ID="36" PID="6">红外(sw)</classification_3>    <classification_3 ID="37" PID="7">指纹类(sw)</classification_3>    <classification_3 ID="38" PID="8">pa-rf类(sw)</classification_3>    <classification_3 ID="39" PID="9">音频类(sw)</classification_3>    <classification_3 ID="40" PID="10">充电类(sw)</classification_3>    <classification_3 ID="41" PID="11">其他问题(sw)</classification_3>    <classification_3 ID="42" PID="12">gpu(sw)</classification_3>    <classification_3 ID="43" PID="3">kernel-filesystem(sw)</classification_3>    <classification_3 ID="44" PID="4">kernel-bus-i2c(sw)</classification_3>    <classification_3 ID="45" PID="5">wifi-bt-gps-fm(hw)</classification_3>    <classification_3 ID="46" PID="6">wifi-bt-gps-fm(sw)</classification_3>    <classification_3 ID="47" PID="7">recovery(sw)</classification_3>    <classification_3 ID="48" PID="8">patition(sw)</classification_3>    <classification_3 ID="49" PID="9">上层框架及服务问题(sw)</classification_3>    <classification_3 ID="50" PID="10">art虚拟机问题(sw)</classification_3>    <classification_3 ID="51" PID="11">qmi软件问题(sw)</classification_3>    <classification_3 ID="52" PID="12">share_memory(sw)</classification_3>    <classification_3 ID="53" PID="3">虚焊(ap)</classification_3>    <classification_3 ID="54" PID="4">连锡短路(ap)</classification_3>    <classification_3 ID="55" PID="5">btb装配问题(ap)</classification_3>    <classification_3 ID="56" PID="6">其他装配制程问题(ap)</classification_3>    <classification_3 ID="57" PID="7">已确认不复现(ot)</classification_3>    <classification_3 ID="58" PID="8">bsptest工具本身问题(sw)</classification_3>    <classification_3 ID="59" PID="9">低电停止测试(ot)</classification_3>    <classification_3 ID="60" PID="10">fpc(hw)</classification_3>    <classification_3 ID="61" PID="11">现象破坏复现确认(ot)</classification_3>    <classification_3 ID="62" PID="12">ADSP模块(sw)</classification_3>    <classification_3 ID="63" PID="3">员工误操作(ot)</classification_3>    <classification_3 ID="64" PID="4">已无法确认(ot)</classification_3>    <classification_3 ID="65" PID="5">MODEM复位(sw)</classification_3>    <classification_3 ID="66" PID="6">分析中(ot)</classification_3>    <classification_3 ID="67" PID="7">PCBA待维修(ot)</classification_3>    <classification_3 ID="68" PID="8">侧按键(hw)</classification_3>    <classification_3 ID="69" PID="9">KERNEL-MD-BSP(sw)</classification_3>    <classification_3 ID="70" PID="10">CPU/DDR(hw)</classification_3>    <classification_3 ID="71" PID="11">侧键(ap)</classification_3>    <classification_3 ID="72" PID="12">gpu(hw)</classification_3>    <classification_3 ID="73" PID="12">无bug号无法追踪(ot)</classification_3></classification_3s>

三个XML文件已经配置好每个分类的对应关系,分类2根据PID对应分类1的ID,分类3根据PID分类2的ID,可以通过改变三个XML文件的对应关系来配置
JavaScript中使用

window.onload=function(){    classificationResolve();//这是初始化分类1}function classificationResolve() {    var classification_1_id='cause_classification_1';    var classification_1 = $("#"+classification_1_id);//分类1的select ID    classification_1.append("<option value="+''+" id="+''+">"+''+"</option>");//在select下拉选项第一个追加空选项    //下面通过jQuery.get来读取已经配置好的XML文件,并遍历    $.get("/classification/classification_1.xml",function(data){        var classification_1s = $(data).find("classification_1");        //将XML文件的子项读取出来,循环添加到分类1的option中        $(classification_1s).each(function(index,element){            var id = $(element).attr("ID");            var value = $(element).text();            classification_1.append("<option value="+value+" id="+id+">"+value+"</option>");        });    },"xml");    //为分类2绑定值改变事件$('#cause_classification_1').bind("change", function (e) {    classification_1_select=$(this).val();//获取分类1选中的值    $('#cause_classification_2').empty();    $('#cause_classification_2').append("<option value=" + '' + " id=" + '' + ">" + '' + "</option>");    $('#cause_classification_3').empty();    //将分类1选中项的ID属性值获取出来,目的是匹配对应的分类2    var pid = $("option[value='"+classification_1_select+"']").attr("id");    $.get("/classification/classification_2.xml",function(data){    //由于分类2是通过PID属性和分类1的ID对应的,所有要用分类1的ID值匹配分类2的PID值        var classification_2s = $(data).find("classification_2[PID='"+pid+"']");        $(classification_2s).each(function(index,element) {            var id = $(element).attr("ID");            var value = $(element).text();            $('#cause_classification_2').append("<option value=" + value + " id=" + id + ">" + value + "</option>");        });    },"xml");});//为分类2绑定值改变事件$('#cause_classification_2').bind("change", function (e) {    classification_2_select=$(this).val();    $('#cause_classification_3').empty();    $('#cause_classification_3').append("<option value=" + '' + " id=" + '' + ">" + '' + "</option>");    var pid = $("option[value='"+classification_2_select+"']").attr("id");    $.get("/classification/classification_3.xml",function(data){        var classification_3s = $(data).find("classification_3[PID='"+pid+"']");        $(classification_3s).each(function(index,element) {            var id = $(element).attr("ID");            var value = $(element).text();            $('#cause_classification_3').append("<option value=" + value + " id=" + id + ">" + value + "</option>");        });    },"xml");});
0 0
原创粉丝点击