Показать сообщение отдельно
  #3 (permalink)  
Старый 06.09.2013, 04:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<!DOCTYPE html>
<body>
<script type="text/xml" id="xml-source">
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <example id="1">
        <div class="test" xmlns="http://www.w3.org/1999/xhtml">
            <div></div>
        </div>
    </example>
    <example id="2">
        <div class="test" xmlns="http://www.w3.org/1999/xhtml">
            <div><a href="#">Это должно быть ссылкой</a></div>
        </div>
    </example>
    <example id="2">
        <div class="test" xmlns="http://www.w3.org/1999/xhtml">
            <div></div>
        </div>
    </example>
</root>
</script>
<script>
(function(){
	var xmlSource = document.getElementById('xml-source').textContent.trim();
	var xmlDocument = new DOMParser().parseFromString(xmlSource, 'text/xml');
	var exampleNode = xmlDocument.getElementsByTagName('example')[1];
	document.body.appendChild(document.importNode(exampleNode.firstElementChild, true));
})()
</script>
</body>


Не будет работать в IE8 (там нет DOMParser'а и importNode, хотя может можно обойтись и без импорта)
Если xml'ка подтягивается через XMLHttpRequest, то DOMParser не нужен, так как XMLHttpRequest сам парсит документ.
Если html-нодам не указать пространство имен, то они будут реализовывать интерфейс HTMLUnknownElement, то есть "неизвестный элемент"
Ответить с цитированием