我在尝试使用看起来像这样的JavaScript的XML文件中获取值时遇到了麻烦:
<Network>
<Local>
<Name>Name 1</Name>
<IP>192.168.0.1</IP>
</Local>
<Network1>
<Name>Test</Name>
<IP>192.168.0.2</IP>
</Network1>
<Network2>
<Name>Demo</Name>
<IP>192.168.0.3</IP>
</Network2>
</Network>
我想从 Network1 中获取名称,这是&#39;测试&#39;
我尝试使用以下代码,但似乎无法正常运行..
xmlDoc=xmlhttp.responseXML;
var Name1 = xmlDoc.getElementsByTagName("Name")[1];
Name1 = Name1.childNodes.length ? Name1.childNodes[0].nodeValue : "" ;
var Name2 = xmlDoc.getElementsByTagName("Name")[2];
Name2 = Name2.childNodes.length ? Name2.childNodes[0].nodeValue : "" ;
alert(Name1); //should alert 'Test'
alert(Name2); //should alert 'Demo'
我做错了吗?
答案 0 :(得分:0)
正如我们在下面看到的,假设您有一个实际的XML节点,那么您的代码片段就可以正常工作。因此,您的错误必须位于其他地方。
var xmlString = "<Network><Local><Name>Name 1</Name><IP>192.168.0.1</IP></Local><Network1><Name>Test</Name><IP>192.168.0.2</IP></Network1><Network2><Name>Demo</Name><IP>192.168.0.3</IP></Network2></Network>";
var xml = $.parseXML(xmlString);
var nodes = xml.getElementsByTagName("Name");
var nameNode = nodes[1];
var nameString = nameNode.childNodes.length ? nameNode.childNodes[0].nodeValue : "" ;
alert(nameString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
例如,你的xmlDoc
可能是一个字符串,你检查过它的类型吗?
请注意,为了简化解析XML字符串,我在这里使用了jQuery,您可以轻松使用vanilla Javascript。