我有这样的代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<p id="demo"></p>
<script>
var x, i ,xmlDoc;
var txt = "";
var text = "";
$.ajax({
type: "GET" ,
url: "data.xml" ,
dataType: "xml" ,
success: function(xml) {
// xmlDoc = $.parseXML(xml);
$(xml).find('object').each(function(){
console.log($(this).text());
console.log($(this).nodeName);
});
}
});
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>
这会吐出字段的值,但是如何获得XML节点的名称呢?所以在这样的文件中:
<root>
<item>hello</item>
</root>
我只会收到“你好”
我需要“物品”和“你好”之类的东西
有可能吗?谢谢!
答案 0 :(得分:0)
使用示例XML,已经显示了此示例。您可以将它们替换为动态XML。
var x, i ,xmlDoc;
var txt = "";
var text = "";
// Replace with your dynamic xml
var text = "<root>"+
"<item>hello</item>"+
"</root>";
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(text,"text/xml");
// documentElement always represents the root node
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length ;i++) {
console.log("Node :",x[i].nodeName);
console.log("Value :",x[i].childNodes[0].nodeValue);
txt += x[i].nodeName + ": " + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("xmlData").innerHTML = txt;
<div id="xmlData"></div>
来源:https://www.w3schools.com/xml/tryit.asp?filename=try_dom_parsertest3
答案 1 :(得分:0)
您正在寻找xml响应中不存在的object
标记。 (此外,由于您正在使用datatype: 'xml'
JQuery,因此将返回XMLElement)。而是寻找item
标签,然后可以访问nodeName
和textContent
属性。