Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с xml (https://javascript.ru/forum/misc/36967-rabota-s-xml.html)

Phenix 02.04.2013 19:22

Работа с xml
 
Добрый день.
Ф-ция преобразования текста в xml документ не корректно работает в одной функции и корректно в другой.

var txt = '<?xml version="1.0" encoding="UTF-8"?>' +
'<providerlist>' +
'<provider >' +
'<id >8_Internet7320_590592_2020018409</id>' +
'<name >Internet</name>' +
'<accountno >2947</accountno>' +
'<accountdata >0010000318</accountdata>' +
'<utilchannelcode >49</utilchannelcode>' +
'<categoryid >32</categoryid>' +
'<branchid >93</branchid>' +
'</provider>' +
'</providerlist>';

function txtToXML(respText) {
/*
Extract Ajax response text to an XML object
*/
var xmlobject;
if ( respText ) {
if ( window.ActiveXObject ) {
xmlobject = new ActiveXObject( "Msxml2.DOMDocument" );
xmlobject.loadXML( respText );
} else if ( DOMParser ) {
var xmlobject = ( new DOMParser() ).parseFromString(respText, "text/xml" );
}
}
return xmlobject;
}

onLoadNotariats( xml );
onLoadMyPayments( xml, 'MyPayments' );

function onLoadNotariats( xml ){
var xmlDoc = txtToXML( xml );
console.log( xmlDoc ); // Document
}

function onLoadMyPayments( xml, type ) {
var xmlDoc = txtToXML( xml );
console.log( xmlDoc ); // Document
}

danik.js 02.04.2013 21:35

Цитата:

Сообщение от Phenix
Ф-ция преобразования текста в xml документ не корректно работает в одной функции и корректно в другой.

Спасибо, буду знать.

Phenix 03.04.2013 11:31

На данный момент ф-ция txtToXML не преобразовывает документ в чьд вообще.

danik.js 03.04.2013 12:16

Ну если исправить тупую ошибку txt -> xml , то все работает. В любом случае, сама функция работает без всяких правок. Вот только наличие DOMParser надо проверять в первую очередь причем как if (window.DOMParser) ..
var xml = '<?xml version="1.0" encoding="UTF-8"?>' + 
'<providerlist>' +
'<provider >' +
'<id >8_Internet7320_590592_2020018409</id>' +
'<name >Internet</name>' +
'<accountno >2947</accountno>' +
'<accountdata >0010000318</accountdata>' +
'<utilchannelcode >49</utilchannelcode>' +
'<categoryid >32</categoryid>' +
'<branchid >93</branchid>' +
'</provider>' +
'</providerlist>';

function txtToXML(respText) {
/*
Extract Ajax response text to an XML object
*/
var xmlobject;
if ( respText ) {
if ( window.ActiveXObject ) {
xmlobject = new ActiveXObject( "Msxml2.DOMDocument" );
xmlobject.loadXML( respText );
} else if ( DOMParser ) {
var xmlobject = ( new DOMParser() ).parseFromString(respText, "text/xml" );
}
}
return xmlobject;
}

onLoadNotariats( xml );
onLoadMyPayments( xml, 'MyPayments' );

function onLoadNotariats( xml ){
var xmlDoc = txtToXML( xml );
console.log( xmlDoc ); // Document
}

function onLoadMyPayments( xml, type ) {
var xmlDoc = txtToXML( xml );
console.log( xmlDoc ); // Document 
}


А еще непонятно причем тут AJAX.. Тем более что XMLHttpRequest уже возвращает xml (как можно догадаться из названия :) )


Часовой пояс GMT +3, время: 23:40.