Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / кроссбраузерная обработка XML в jscript / 3 сообщений из 3, страница 1 из 1
30.11.2007, 19:51
    #34979200
karambol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кроссбраузерная обработка XML в jscript
Вобщем столкнулся с банальной проблемой кроссплатформенности.
Подскажите плс, ссылку на хороший tutorial по этому вопросу.
Вот код. как под firefox можно переделать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
<script language="JavaScript">
function add_elem_to_combo(fcombo, value, text,i)
{
	var parensel= document.getElementById(fcombo);
	var elem = document.createElement("option");
	elem.value = value;
	elem.text = text;
	parensel.options.add(elem);
}


function getComboFromXML(path, combo, xmlStr)
{

// code for IE
		if (window.ActiveXObject)
		  {
		  //Msxml2.DOMDocument
		  xmlDoc=new ActiveXObject("Msxml2.DOMDocument");
		  xmlDoc.async=false;
		  xmlDoc.load(xmlStr);
		  }
		// code for Mozilla, Firefox, Opera, etc.
		else if (document.implementation &&
		document.implementation.createDocument)
		  {
		  xmlDoc=document.implementation.createDocument("","",null);
		  xmlDoc.load(xmlStr);
		  }

		//alert('asd');
		// î÷èùàåì combo
		var selection= document.getElementById(combo);
		selection.options.length =  0 ;
		selection.options[ 0 ]=new Option("----", "", false, false);
		
		var child = 'option'; 
		
		//var oSelct = xml.selectSingleNode(path);
		var oSelct = xmlDoc.documentElement;
		//var oSelct = xmlDoc.getElementsByTagName(child);
		
		if( !oSelct || !oSelct.hasChildNodes() ) return;
		var oNodes;
			var val ;
			var txt ;
		//alert('klp');	
		oNodes = oSelct.selectNodes(child);
		
		for( var j =  0 ; j < oNodes.length; j++ )
		{
			text = oNodes.item(j).attributes( 0 ).value;
			val = oNodes.item(j).attributes( 1 ).value;
			//alert(val);
			//txt = oNodes.item(j).getAttribute("text");
			add_elem_to_combo(combo, val, text,j);
		}

}

 </script>

Xml-ка имеет следующий вид:
Код: plaintext
1.
2.
3.
4.
<select>
  <option text="1-к.кв." value="1" />
  <option text="2-к.кв." value="2" />
  <option text="3-к.кв." value="3" />
</select>

При выборе значения из одного списка - заполняется второй. Вот:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
                                         <select name="rub22" id="rub22">
                                                <option value="">Все</option>
                                              </select>
											  
                                              <select name="selecte" OnChange="javascript: getComboFromXML('select', 'rub22', 'select.xml');">
                                                <option value="1"> 1 </option>
                                                <option value="3"> 2 </option>
                                              </select>

Вобщем ни mozilla, firefox не понимает нифига "selectNodes" :( Дурдом блин.
...
Рейтинг: 0 / 0
03.12.2007, 12:00
    #34981666
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кроссбраузерная обработка XML в jscript
да, что касается selectNodes, они в этом сильно отличаются.
http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator
...
Рейтинг: 0 / 0
05.12.2007, 15:25
    #34988562
karambol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
кроссбраузерная обработка XML в jscript
Мда... тяжелый случай. Вобщем, лучше обрабатывать на стороне сервера и загонять готовый код в отдельный блок. Обрабатывать на стороне клиента - сума сойти можно. Или я не прав?


Час пик b4b Пластик
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / кроссбраузерная обработка XML в jscript / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]