Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > XMLHTMLRequest


Автор: Goganchic 4.5.2007, 08:52
Есть Javascript, который обращается к серверному PHP приложению, которое в свою очередь бросает ему строки вида
Код

<tr><td>t1</td><td>t2</td><td>t3</td></tr>

Т.е. строки большой таблицы (все это делается, чтобы не грузить всю таблицу сразу целиком). При обертывании всего этого дела в XML получается следующее:
Код

<table_strings>

  <string>
    <tr><td>t1</td><td>t2</td><td>t3</td></tr>
  </string>

  <string>
    <tr><td>t1</td><td>t2</td><td>t3</td></tr>
  </string>

  <string>
    <tr><td>t1</td><td>t2</td><td>t3</td></tr>
  </string>

</table_strings>

Вопрос: как сделать так, чтобы XML парсер воспринимал всю строку
Код

<tr><td>t1</td><td>t2</td><td>t3</td></tr>

как обычный текст, а не тэги.
P.s. заранее признаю себя полным ламером в этом вопросе, так что может быть ответ очевидный, а можеть быть я выражаюсь не очень ясно, так что прошу задавать наводящие вопросы, если что, и не сильно пинать меня за это smile

Автор: Burrr 4.5.2007, 09:31
Не совсем понял что ты имеешь в виду, но вот:

Код
var table = request.responseXML;
rows = table.getElementsByTagName("string");
var result = new Array();
for (var i = 0; i < rows.length; i++) {
   result[i] = (rows[i].innerText) ? rows[i].innerText : rows[i].textContent;
}
// result - это массив, содержащий текст без XML-разметки


Код писал прямо здесь, поэтому не проверял и мог опечататься, но идея думаю ясна.

Если же нужна текстовая строка прямо с XML-разметкой код немного меняется:
Код
var table = request.responseXML;
rows = table.getElementsByTagName("string");
var result = new Array();
for (var i = 0; i < rows.length; i++) {
   result[i] = rows[i].innerHTML;
}
// result - это массив, содержащий текст без XML-разметки


Если что-то непонятно, то попробуй в обоих примерах сделать вывод методом alert() и посмотреть результат.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)