Safari

时间:2015-08-07 02:56:42

标签: javascript safari

我有一些javascript正在加载XML文档并根据特定属性过滤元素。

XML结构类似于以下结构:

<locations>
  <region name="metro" title="Metropolitan">
     <location type="HQ">
        <name>Head Office</name>
     </location>
     <location type="NM">
        <name>North Metro</name>
     </location>
  </region> 
  <region name="south" title="Southern region">
     <location type="SR">
        <name>South Regional Office</name>
     </location>
  </region> 
</locations> 

javascript正在提取指定​​区域的元素,相关的代码行如下:

// supplied region name in this case is "metro"
var _xpath = "/locations/region[@name=\"" + regionName + "\"]";
var _regionList;
// code for IE .... not shown
// code for other browsers
_regionList = mLocationsXmlDoc.evaluate(_xpath, mLocationsXmlDoc, null, XPathResult.ANY_TYPE, null);

现在这在Firefox,Chrome和Opera中运行得非常好......但是在Safari中不起作用。

在Safari中执行时, _regionList 变量最终为null,并抛出错误消息"TYPE_ERR: DOM XPath Exception 52: The expression could not be converted to return the specified type",我无法弄清楚原因。任何帮助和建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

最后,我删除了evaluate语句,并使用getElementsByTagName和childNodes方法遍历XML结构...更多代码,但Safari对此感到满意。 对于为什么评估不起作用仍然没有明智之处。