假设我有以下XMLHttpRequest()。responseText存储在var response
中:
{"success":true,"error":null,"body":"<modules>\n <total>5<\/total>\n <status>\n <id>0<\/id>\n <name>Archon<\/name>\n <portCount>14<\/portCount>\n <attached>true<\/attached>\n <\/status>\n <status>\n <id>1<\/id>\n <name>PC4<\/name>\n <portCount>0<\/portCount>\n <attached>false<\/attached>\n <\/status>\n <status>\n <id>2<\/id>\n <name>APC<\/name>\n <portCount>0<\/portCount>\n <attached>false<\/attached>\n <\/status>\n <status>\n <id>3<\/id>\n <name>SL1<\/name>\n <portCount>0<\/portCount>\n <attached>false<\/attached>\n <\/status>\n <status>\n <id>4<\/id>\n <name>SW5-1<\/name>\n <portCount>0<\/portCount>\n <attached>false<\/attached>\n <\/status>\n <status>\n <id>5<\/id>\n <name>ALC<\/name>\n <portCount>0<\/portCount>\n <attached>false<\/attached>\n <\/status>\n <status>\n <id>65<\/id>\n <name>VirtualModule<\/name>\n <portCount>16<\/portCount>\n <attached>true<\/attached>\n <\/status>\n<\/modules>\n"}
之后,我进行了以下操作以提取身体:
var json = JSON.parse(response);
var xml = json.body;
var xml
中的对象是一个字符串,因此我尝试尝试将其解析为XMLDocument:var xmlDoc = new DOMParser().parseFromString(xml, 'text/xml');
这里的麻烦是我不知道如何到达子节点。我尝试了以下方法来获取合计的值(应为5):
console.log(xmlDoc.getElementsByTagName("modules")[0].childNodes[0].nodeValue);
但是我得到的只是一个空白字符串。我觉得这应该很简单,但我根本不了解。一旦我想获取各种名称标签的值,我就更加无能为力了。
如何获得子节点的值?
最佳答案
字符串不为空。
console.log(xmlDoc.getElementsByTagName("modules")[0].childNodes[0].nodeValue.charCodeAt(0));
10
这是回车的ASCII码。您可以看一下here来找到有关
childNodes
和children
的更多信息。 xmlDoc.children
将为您提供一个HTML集合,您可以遍历并从中提取信息。注意:我建议编辑问题的标题,以对将来可能会看到它的人们有所帮助。