【发布时间】:2013-11-01 07:41:10
【问题描述】:
我有一个 xml,它是:
<ns1:GetStudentDataCollection xmlns:ns1="http://tempuri.org/">
<ns1:GetStudentData>
<ns1:RecordID>1</ns1:RecordID>
<ns1:StudentID>1</ns1:StudentID>
<ns1:StudentName>Arzon</ns1:StudentName>
<ns1:Class>2</ns1:Class>
<ns1:FathersName>Peter John</ns1:FathersName>
<ns1:MothersName>Maria John</ns1:MothersName>
</ns1:GetStudentData>
</ns1:GetStudentDataCollection>
这个 xml 在一个变量中,我将其转换为 xmlDoc:
var xmlDoc=StringtoXML(xmlString);
//获取xmlDoc后,我正在尝试读取xml内容 读取xml(xmlDoc);
//converts string to xml
function StringtoXML(text){
if (window.ActiveXObject){
var doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(text);
} else {
var parser=new DOMParser();
var doc=parser.parseFromString(text,'text/xml');
}
return doc;
}
在 Readxml() 函数我这样做:
function Readxml(xmlDoc) {
x = xmlDoc.getElementsByTagName('RecordID');
console.log(x.length);
alert("Value of x is : " + x);
}
但是当我运行上面的东西时,我没有得到任何 x 值。所以这意味着我无法解析这个 xml。我究竟做错了什么。请帮忙。期待您的解决方案。
【问题讨论】:
-
xmlDoc.getElementsByTagName('RecordID')像对象一样返回数组 .. 打印它的值 .. 你应该使用 ..x[0].innerHTML -
但如果 xmlDoc.getElementsByTagName('RecordID') 返回数组,那么它至少应该给我长度。但是当我打印它的长度时,它给了我 0