не работает парсинг XML в IE 
		
		
		
		Здравствуйте. 
	Имею следующую функицю 
function getCategories(xml){
	var success = 0;
	jQuery(xml).find('cat').each( function(){
		if(success == 0)
		{
			jQuery('#categories').append('<option value=null>- Выберите -</option>');				
		}
        jQuery('#categories').append('<option value=' + jQuery(this).attr('id') + '>'+jQuery(this).text()+'</option>');
		success = 1;
	});
	return success;
}
То бишь на вход приходит XML, в нём находим <cat>...</cat> и добавляем это в select. В Mozilla, Chrome, Opera работает замечательно. В горячо любимом мной IE 8 не работает.. не срабатывает each(). Данные в переменной xml следующие: <?xml version="1.0" encoding="windows-1251"?><categories><cat id='34'>Жилая недвижимость</cat><cat id='36'>Коммерческая недвижимость</cat></categories> В чем может быть причина подскажите пожалуйста? Может как-то ещё можно по быстрому распарсить?  | 
	
		
 Используйте JSON 
	 | 
	
		
 а есть простой способ преобразовать JSON строку полученную от сервера в массив? 
	порылся в инете и пока что только через регулярные выражения нашёл решение. но что то оно не очень нравится. я через регулярные мог и XML тогда распарсить наверное..  | 
	
		
 Enxiro, 
	а вы знаете, что такое JSON? Судя по вопросам не знаете.  | 
	
		
 Конечно есть. В современных браузерах есть встроенный объект JSON, метод parse которого служит для преобразования JSON-строки в JavaScript-объект. Для остальных браузеров этот объект можно добавить http://www.json.org/js.html 
	Ваши данные в JSON-строке выглядели бы так: 
{"34": "Жилая недвижимость", "36": "Коммерческая недвижимость"}
Преобразуем в JavaScript-объект: 
var data = JSON.parse('{"34": "Жилая недвижимость", "36": "Коммерческая недвижимость"}');
alert(data[36]);
В jQuery есть методы для работы с JSON. Разбор xml на клиенте сейчас используют разве что в каких нибудь шаблонизаторах.  | 
	
		
 Цитата: 
	
 Но как оказалось действительно не знаю. И решение оказалось достаточно простое. Пишу для остальных. Получив от сервера объект JSON скажем в переменную obj можем добираться до элементов легко: obj.element_name Вот скажем у меня сервер формировал строку 
echo json_encode(array(0=>array('orig' => 'orig1', 'name' => 'name1'), 1=>array('orig' => 'orig2', 'name' => 'name2')));
В JavaScript пройтись по этим элементам можно следующим образом: 
jQuery.getJSON('index.php?option=com_ajaxsearch&no_html=1', {v: val}, function(obj)
{
	for(var i=0; i<obj.length; i++)
		alert(obj[i].orig);
});
Вот. А вариант с var data = JSON.parse почему то не работал. И так ещё пробовал var response = eval(" (" + datac + ") "); тоже не работал. Выдавал "missing ] after element list" Ладно. Спасибо всем за советы.  | 
	
		
 Цитата: 
	
 Правда HTML, CSS, JavaScript, C++, C#, Java, Erlang и многое другое тоже являются строками, сформированными определённым образом.  | 
| Часовой пояс GMT +3, время: 09:39. |