У меня есть несколько простых XML, таких как:
<Tag>
<Keyphrases>
<Keyphrase Phrase = "This is phrase one"/>
<Keyphrase Phrase = "This is phrase two"/>
<Keyphrase Phrase = "This is phrase three"/>
</Keyphrases>
</Tag>
И у меня есть XSLT, который содержит:
[...]
<table id="realtimetable">
<xsl:apply-templates select="Tag/Keyphrases"/>
</table>
[...]
<!-- Build KeyPhrase Rows -->
<xsl:template match="Tag/Keyphrases">
<xsl:for-each select="Keyphrase">
<tr><td>
<xsl:value-of select="@Phrase" />
</td></tr>
</xsl:for-each>
</xsl:template>
Но теперь я хочу обновить содержимое этой таблицы на лету. Я понимаю, что могу использовать XMLHttpRequest () для получения новых данных.
Однако я не знаю, какой формат использовать для этих обновлений или как вставить новые данные в таблицу.
Я могу предоставить обновления в формате XML. Но могу ли я повторно использовать свой существующий шаблон XSLT для его анализа и повторного заполнения отображаемой таблицы? Это выглядит элегантно и аккуратно, но возможно ли это, и если да, то как бы я это сделал?
Если это невозможно, я полагаю, что мог бы написать Javascript для синтаксического анализа XML и обновления таблицы самостоятельно. Это звучит как большая тяжелая работа: - (
Так что я также рассматривал возможность ответа на запрос XMLHTTPRequest в формате JSON. Я думаю, что обработать JSON может быть проще, чем анализировать XML.
Но как должен выглядеть мой документ JSON и как мне написать JavaScript для обработки JSON и повторного заполнения таблицы?
Как бы то ни было, у меня есть чистый (проверенный на наличие ошибок) ответ от XMLHttpRequest (), что мне здесь делать?
function ProcessUpdate()
{
}
Я бы предпочел избегать использования каких-либо библиотек, таких как jQuery, для этого проекта.
Обновление:
Спасибо за все ответы. Некоторые комментарии и уточнения:
Причины избегания jQuery и др. На данном этапе: а) В этом проекте уже есть куча других зависимостей, и я пытаюсь ограничить рост этого гнезда крыс. б) Я стремлюсь учить новые вещи более эффективно с подходом снизу вверх. Когда я понимаю низкоуровневые атомарные операции, я чувствую себя намного комфортнее, используя высокоуровневые библиотеки, чтобы выполнить всю работу за меня.
Таблица, о которой идет речь, очень маленькая и простая. Поэтому я склонен воссоздавать всю таблицу с нуля при каждом обновлении. Там действительно нет необходимости иметь дело со сложностью выборочных обновлений.
Dimitre: ваш XSL выглядит увлекательно, и я определенно потрачу некоторое время на его усвоение. Тем не менее, я не понимаю (вообще), как вызвать это обновление. то есть как бы я инициировал это преобразование из JavaScript?