我想获得legalName
和phyCity
来自此链接: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
答案 0 :(得分:1)
您可以使用.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>
答案 1 :(得分:0)
xmlDoc.nodeValue()函数将返回字符串。
而不是你可以使用,xmlDoc.getElementsByTagName(“carrier”)
这将返回一个节点数组。如果您确定只有一个节点,则可以直接访问[0]索引,否则循环并使用getAttribute('')获取属性值;