Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Можно ли выводить html из xml? (https://javascript.ru/forum/misc/17315-mozhno-li-vyvodit-html-iz-xml.html)

romanski 14.05.2011 13:21

Можно ли выводить html из xml?
 
у меня есть документ xml и в блоке <block1> я записываю html
как вывести html из этого блока или как по-другому реализовать?

monolithed 14.05.2011 15:43

Цитата:

Сообщение от romanski
как вывести html из этого блока или как по-другому реализовать?

как-то так:
//для загрузки файла
function loadXML(import_file) {
    if(typeof ActiveXObject != 'undefined') {
        var version = ['MSXML2.DOMDocument',
                       'MSXML2.DOMDocument.3.0',
                       'MSXML2.DOMDocument.4.0',
                       'MSXML2.DOMDocument.5.0',
                       'MSXML2.DOMDocument.6.0'],
        i = version.length;

        while(i--) {
			try {
				var XMLObject = new ActiveXObject(version[i]);
			}
			catch(error) {
				//throw new Error(error.message);
			}
        }

        XMLObject.onreadystatechange = function () {
            if(XMLObject.readyState == 4) {
				/* что-то выполняем */
            }
            XMLObject.load(import_file);
        }
    }
    else if(document.implementation && document.implementation.createDocument) {
        var XMLObject = document.implementation.createDocument('','',null);
            XMLObject.load(import_file);
            XMLObject.onload = function() {
                /* что-то выполняем */
            };
    }
    else {
        alert('Your browser doesn\'t support this object');
        return false;
    }
}

//для парсинга XML-строки
function loadXMLString(string) {
	if(window.DOMParser) {
		var XMLString =  new DOMParser().parseFromString(string, "text/xml");
	}
	else {
		 var version = ['MSXML2.DOMDocument',
						'MSXML2.DOMDocument.3.0',
						'MSXML2.DOMDocument.4.0',
						'MSXML2.DOMDocument.5.0',
						'MSXML2.DOMDocument.6.0'],
		i = version.length;

		while(i--) {
			try {
				var XMLString = new ActiveXObject(version[i]);
			}
			catch(error) {
				//throw new Error(error.message);
			}
		}
		XMLString.async = 'false';
		XMLString.loadXML(string);
	}
    return XMLString;
}

romanski 14.05.2011 16:10

видимо не правильно сформулировал вопрос.
xml я получаю из ajax.
e=data.getElementsByTagName('block1')[0];
alert(e);
мне выдает Object Element
что нужно сделать чтобы вывести?
в block1 содержится html

monolithed 14.05.2011 17:02

function loadXMLString(string) {
    if(window.DOMParser) {
        var XMLString =  new DOMParser().parseFromString(string, "text/xml");
    }
    else {
         var version = ['MSXML2.DOMDocument',
                        'MSXML2.DOMDocument.3.0',
                        'MSXML2.DOMDocument.4.0',
                        'MSXML2.DOMDocument.5.0',
                        'MSXML2.DOMDocument.6.0'],
        i = version.length;
 
        while(i--) {
            try {
                var XMLString = new ActiveXObject(version[i]);
            }
            catch(error) {
                //throw new Error(error.message);
            }
        }
        XMLString.async = 'false';
        XMLString.loadXML(string);
    }
    return XMLString;
}

var xml = loadXMLString(
    '<parent>\
        <element>text<element>\
    </parent>'
);

function getData(node) {
    var childrens = node.childNodes,
        i = childrens.length,
        array = [];
    while(i--) {
        var data = node.childNodes[i];
        data.hasChildNodes() && array.unshift(data);
    }
    return array;
}

alert(getData(xml.documentElement)[0].firstChild.nodeValue);


дальше тем же/подобным макаром сами


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