我有一些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"
,我无法弄清楚原因。任何帮助和建议将不胜感激。
答案 0 :(得分:0)
最后,我删除了evaluate语句,并使用getElementsByTagName和childNodes方法遍历XML结构...更多代码,但Safari对此感到满意。 对于为什么评估不起作用仍然没有明智之处。