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

z700i 10.09.2012 20:29

работа с XML
 
можно ли взять XML и в JSON или в Object превратить?
что-то вроде:

ИЗ

Код:

<?xml version="1.0"?>
    <methodResponse>
        <names>
            <item>
                Igor
            </item>
            <item>
                Gena
            </item>
        </names>
        <text>
            bla-bla-bla
        </text>
    </methodResponse>


В
{
    names: [
        'Igor',
        'Gena'
    ],
    text: 'bla-bla-bla'
}

bes 10.09.2012 20:52

через DOM
<?xml version="1.0"?>
    <methodResponse>
        <names>
            <item>
                Igor
            </item>
            <item>
                Gena
            </item>
        </names>
        <text>
            bla-bla-bla
        </text>
    </methodResponse>
	
<script>
window.onload = function () {
	var obj = {
		names: [],
		text: ''
	}
	var  mr = document.getElementsByTagName('methodResponse')[0];
	var items = mr.getElementsByTagName('names')[0].getElementsByTagName('item');
	var len = items.length;
	for (var i = 0; i < len; i++) {
		obj.names.push(items[i].innerHTML.replace(/\s/g, ''))
	}
	obj.text = mr.getElementsByTagName('text')[0].innerHTML.replace(/\s/g, '');
	alert('names: [' + obj.names + ']\n text: ' + obj.text)
}
</script>

z700i 10.09.2012 21:46

Так и я умею:)
А если мы не знаем что находится в XML?

bes 10.09.2012 21:50

Тогда надо конкретизировать задачу

z700i 10.09.2012 21:54

А общего решения нет? У jQuery или ещё у какой нибудь библиотеки?

nerv_ 11.09.2012 00:30

var XML = (function() {
	if ( window.ActiveXObject ) {
		return {
			newDocument: function() {
				return new ActiveXObject( 'MSXML2.DOMDocument' );
			},
			parse: function( text ) {
				var doc = this.newDocument();
				doc.loadXML( text );
				return doc;
			}
		};
	} else {
		return {
			newDocument: function() {
				document.implementation.createDocument( null, null, null );
			},
			parse: function( text ) {
				var parser = new DOMParser();
				return parser.parseFromString( text, 'application/xml' );
			}
		};
	}
}());


var xmlDoc = XML.parse( '<?xml version="1.0"?>\
										<methodResponse>\
										<names>\
											<item>Igor</item>\
											<item>Gena</item>\
										</names>\
									<text>\
										bla-bla-bla\
									</text>\
									</methodResponse>' );
					
debugger;


а, вообще, читаем Фленагана.

Aetae 11.09.2012 04:46

Такие вещи прекрасно гуглятся: /g xml to json javascript .


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