在javascript中访问XML文件的值
我在js文件中使用XMLHTTPRequest加载XML文档,如下所示:在javascript中访问XML文件的值,javascript,xml,xml-parsing,xmlhttprequest,Javascript,Xml,Xml Parsing,Xmlhttprequest,我在js文件中使用XMLHTTPRequest加载XML文档,如下所示: <?xml version="1.0" encoding="utf-8"?> <RMFSFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Host>www.example.com</Host> <Port
<?xml version="1.0" encoding="utf-8"?>
<RMFSFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Host>www.example.com</Host>
<Port>8888</Port>
<Uri>www.example.com</Uri>
<Path>
<HD>
<UNC>path1</UNC>
</HD>
<SD>
<UNC>path2</UNC>
</SD>
</Path>
知道如何检索路径吗?您在第一行中正确使用了
getElementsByTagName
,然后又错误地使用了该路径
应该是
var x = xml.getElementsByTagName('Path')[0];
var y = x.getElementsByTagName('HD')[0];
var z = y.getElementsByTagName('UNC')[0];
或者,更简单地说(如果你知道只有一个)
或者,从“许多”中获得第一个
我忽略了XML无效这一事实,顺便说一句,我认为在这里发布时遗漏了这一行
getElementsByTagName
返回一个集合
——正如您在var x
中所意识到的,并在下一行代码中忘记了这一点!我不知道querySelector。它比尝试使用GetElements要简单得多。注意,它可能不是普遍可用的-尽管它从IE8开始就在internet explorer中,所以使用起来非常安全(我知道我知道,IE7中仍有很大比例)
var x = xml.getElementsByTagName('Path')[0];
var y = x.getElementsByTagName('HD')[0];
var z = y.getElementsByTagName('UNC')[0];
var z = xml.querySelector('Path>HD>UNC');
var z = xml.querySelectorAll('Path>HD>UNC')[0];