如何在javascript中改进提取xml节点?

时间:2016-04-04 09:24:53

标签: javascript

我使用正则表达式拆分方法提取,所以我想用适当的xml提取方法改进我的代码? XML格式,

<SanctionLimit>
  <SancionBy>50400003</SancionBy>
  <MinimumLimit>0.01</MinimumLimit>
  <MaximumLimit>9999999999.99</MaximumLimit>
</SanctionLimit>

这是我目前使用的:

$.each(DetailXmlData, function(indexData, objDetail) {

        var xmlResult = objDetail.ParamInfo;
        var arrSanction = [];
        var Extracted_SancBy = [];
        arrSanction = xmlResult.split("<MinimumLimit>")[0].replace("<SanctionLimit><SancionBy>", "").replace("</SancionBy><SancionBy>", ",").replace("</SancionBy>", "").split(",");

        $.each(arrSanction, function(index, value) {
            var sancLength = ctl00_ContentPlaceHolder1_chkSanctionedBy.getElementsByTagName('input').length;
            for (var i = 0; i < sancLength; i++) {
                if (ctl00_ContentPlaceHolder1_chkSanctionedBy.getElementsByTagName('span')[i].attributes["SanctionedByValue"].value == value) {
                    ctl00_ContentPlaceHolder1_chkSanctionedBy.getElementsByTagName('input')[i].checked = true;
                }
            }
        });

        txtMinimumLimit.value = xmlResult.split("</MinimumLimit>")[0].split("<MinimumLimit>")[1];
        txtMaximumLimit.value = xmlResult.split("</MaximumLimit>")[0].split("<MaximumLimit>")[1];
        txtRemarks.value = objDetail.ParamRemarks;
    });

2 个答案:

答案 0 :(得分:1)

它为我工作,

xmlDoc = $.parseXML(xmlResult),
        $xml = $(xmlResult);
         $($xml).each(function() {
            alert("sanctioned By:" + $(this).find("SancionBy").text())
            alert("Minimum Limit:" + $(this).find("MinimumLimit").text());
            alert("MaximumLimit Limit:" + $(this).find("MaximumLimit").text());
        });

答案 1 :(得分:0)

为什么不使用jquery的parseXML方法?

var xml = $.parseXML(xmlcontent);
xml.find("tagName").text()