我在javascript中使用以下代码
text = LxmlHttp.responseText;
parser = new DOMParser();
xmlDoc = parser.parseFromString(text, "application/xml");
xmlDoc.setProperty('SelectionLanguage', 'XPath');
我收到此错误:Uncaught TypeError: Object #<Object> has no method 'setProperty'
请帮我解决问题。
TIA ..
嗨菲利克斯, 我有以下xml结构
<?xml version="1.0"?>
<response status="200">
<ns3:op xmlns="http://xxx.com/details/"
xmlns:ns2="http://xxx.com/mgmt/"
xmlns:ns3="http://xxx.com/list/">
<ns2:ntfs count="140">
<ns2:ntf>
<ns2:Nid>4687807</ns2:Nid>
</ns2:ntf>
</ns2:ntfs>
</ns3:op>
</response>
我必须在IE 7,IE 8,IE 9,FF,safari和chrome
中阅读命名空间索引可能不一样,可能会更改。 我需要独立于命名空间和浏览器解析xml。
我正在尝试这样做
var xmlDoc = new DOMParser().parseFromString(....);
xmlDoc.setProperty("SelectionNamespaces", 'xmlns:ns3="http://xxx.com/list/"');
xmlDoc.setProperty("SelectionLanguage", "XPath");
var op = xmlDoc.selectSingleNode("/response/ns3:op");
这仅适用于IE。 请让我知道如何在所有浏览器中解析xml。
答案 0 :(得分:1)
这仅适用于IE
是。 setProperty
是MSXML中的专有方法(实际上我根本不知道IE确实支持XPath)。
对于标准解决方案,请参阅MDN's article Using XPath,赞成document.evaluate
。您应该使用功能检测来检查它是否可用,如果没有,则回退到document.selectSingleNode
。