Я с помощью XML + XSL в браузере и обработка асинхронных страниц в JavaScript, но не может добавлять XML обрабатывается тр элемента в таблицу TBODY, потому что строка элементы выглядят как обычный текст. Я нахожу некоторые взломать, чтобы исправить это с копированием innerHTML (функция convertChild):Добавить XML-элемент документа в HTML таблицы
var xmlDom = pageProcessor().transformToDocument(xml);
var root = xmlDom.documentElement;
var tbody = document.getElementById('table-content');
for (var i = 0; i < root.childElementCount; i++) {
tbody.appendChild(convertChild(root.children[i]));
}
function convertChild(source) {
var tmp1 = document.createElement('tbody');
tmp1.appendChild(source);
var tmp2 = document.createElement('tbody');
tmp2.innerHTML = tmp1.innerHTML;
return tmp2.firstChild;
}
функция возвращает pageProcessor XSLTProcessor с импортированной XSL таблицы стилей. Переменная xml - это документ библиотеки Sarissa. В отладчике root.children [i] выглядит действительным.
Как избавиться от этого взлома и добавить элементы в таблицу правильно?
Обновление:
Я с помощью Firefox 37.0.2
XML выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<rows>
<row><item>key44</item><item>val44</item></row>
<row><item>key45</item><item>val45</item></row>
...
</rows>
Я console.log каждый элемент HTML, обработанный XSLT из пункта строки вtr td
Решено:
Спасибо, Мартин Хоннен!
transformToFragment(sourceDoc, ownerDoc)
работ!
Пожалуйста, напишите ответ.
Какой браузер (ы) вы используете? Как выглядит XML, убедитесь, что вы создаете элементы результата HTML с XSLT, либо убедитесь, что у вас есть полный HTML-документ с '
...' и 'В соответствии с http://dev.abiss.gr/sarissa/jsdoc/symbols/XSLTProcessor.html#constructor существует метод 'transformToFragment (sourceDoc, ownerDoc)', поэтому я бы предложил попробовать var varDoc = pageProcessor.transformToFragment (xml, document); 'и, надеюсь, вы сможете« appendChild »узлы из« resultDocument »в потомок' tbody' вашего документа HTML. –
Ну с Firefox элемент 'tr' - это только элемент' tr' HTML, если он создан в документе HTML или фрагменте документа, или если он создан в пространстве имен XHTML 'http://www.w3.org/1999/ xhtml'. В противном случае это неизвестный элемент XML, который имеет локальное имя 'tr'. –