javascript - 如何从 XML 树中获取值?

标签 javascript html asp.net xml

我正在尝试获取 legalNamephyCity 的值

从此链接:check

我想使用 JavaScript,如下所示:

$('.DotNum').click(function (e) {
        var dotNum = $('#DotNum').val().replace(/\-|\s/g, '');
        var url = "https://mobile.fmcsa.dot.gov/qc/services/carriers/"+ dotNum +".xml?webKey=dadd9237da5c0390c9511ef871258e1703abdb36";
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            if (xhr.readyState == XMLHttpRequest.DONE) {
                alert(xhr.responseText);
                var xmlDoc = this.responseXML;
                var legalName = xmlDoc.nodeValue("response").ChildNode("content").ChildNode("carrier").attribute("legalName");
                $('#CompName').val(legalName);
                $('#CompCity').val(phyCity);
                $('#CompState').val(state);
                $('#CompAddress').val(address);
            }
        }
        xhr.open('GET', url, true);
        xhr.send(null);
    });

我不知道如何获取legalName的值 所以我尝试了很多不同的事情......

我该怎么做var legalName = xmlDoc.brabrabar

最佳答案

您可以使用.getElementsByTagName()来获取您要查找的元素:

var carrier = xmlDoc.getElementsByTagName('carrier')[0];
var legalName = carrier.getAttribute('legalName');
var phyCity = carrier.getAttribute('phyCity');
var state = carrier.getAttribute('phyState');

工作示例:

function queryDot(dotNum) {
  var url = "https://mobile.fmcsa.dot.gov/qc/services/carriers/" + dotNum + ".xml?webKey=dadd9237da5c0390c9511ef871258e1703abdb36";
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    if (xhr.readyState == XMLHttpRequest.DONE) {
      var xmlDoc = this.responseXML;

      var carrier = xmlDoc.getElementsByTagName('carrier')[0];

      var legalName = carrier.getAttribute('legalName');
      var phyCity = carrier.getAttribute('phyCity');
      var state = carrier.getAttribute('phyState');

      console.log(legalName, phyCity, state);
    }
  }
  xhr.open('GET', url, true);
  xhr.send(null);
}

queryDot(44110);

由于您似乎正在使用 jQuery,因此您也可以通过 jQuery 方式执行此操作:

function queryDot(dotNum) {
  $.get("https://mobile.fmcsa.dot.gov/qc/services/carriers/" + dotNum + ".xml?webKey=dadd9237da5c0390c9511ef871258e1703abdb36")
    .then(function(result) {
      var carrier = $(result).find('carrier');

      var legalName = carrier.attr('legalName');
      var phyCity = carrier.attr('phyCity');
      var state = carrier.attr('phyState');

      console.log(legalName, phyCity, state);
    });
}

queryDot(44110);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

关于javascript - 如何从 XML 树中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865272/

相关文章:

javascript - 从单独的 JS 文件将 YouTube 视频绑定(bind)到 Div 元素

javascript - 根据循环的选择框选择动态显示和隐藏字段

c# - ashx 文件的输出(服务器端)缓存

ASP.NET 成员身份在没有 requiresQuestionAndAnswer 的情况下创建用户

如何开始Node.js的学习

javascript - 在 div 上追加子节点

jquery 扩展不适用于多个实例

html - <code> 标签在 ipython notebook 中的样式不正确

html - 具有不同变换原点的不同元素上的相同 CSS 动画

css - 在 ASP.NET 中更改 TimePicker 大小