У меня проблема с тем, что XPath возвращает что-либо.Я пробовал только в Firefox, но я использовал несколько разных примеров, и ни один из них не работает.
function populateFilters(productType) {
callAjax.request({
url: './Products.xml',
onSuccess: function(rootNode, fullText) {
var path = '//product';
// code for IE
if (window.ActiveXObject)
var nodes=rootNode.selectNodes(path);
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
var nodes=rootNode.evaluate(path, rootNode, null, 0, null);
for (var i = 0; i < nodes.length; ++i) {
nodes[i].childNodes[0];
}
},
onError: function(errCode, responseStatus) {alert('An error has occured. Please contact the site\'s Webmaster.\n\n' + errCode + '\n' + responseStatus);}
});
}
Вызов ajax работает нормально ... Я получаю документ XMLи могу перемещаться по DOM без проблем.У меня проблема в том, что когда код отвечает на вызов rootNode.evaluate()
, ничего не возвращается.Нет ошибок и нет данных.Вот пример фрагмента XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<product>
<type>Snowboard</type>
<brand>DC</brand>
</product>
<product>
<type>Skateboard</type>
<brand>Banana</brand>
</product>
<product>
<type>Clothing</type>
<brand>BoardDokter</brand>
</product>
</root>
Единственное, о чем я могу думать, это то, что var path = '//product';
неверен, но я рассмотрел много примеров, и он действительно должен работать.
У кого-нибудь есть идеи?Firefox 4 в Windows XP и Windows 7.