Проблемы с разбором XHTML-страницы через JavaScript - PullRequest
0 голосов
/ 16 июля 2009

Существует некоторая HTML-страница, источник этой страницы был проанализирован перед загрузкой в ​​браузере, чтобы найти некоторые позиции XPath. Затем эта страница была загружена в браузер, и я хочу с помощью JAvaScript (при некоторых действиях) вставить некоторый текст в позиции XPath, который уже был найден. Проблема в том, что в JavaScript (jQuery) я могу получить только innerHTML (HTML DOM) этой страницы, и она отличается от XHTML DOM (XML DOM), который был проанализирован. Как я могу получить в JavaScript XML DOM страницы XHTML, а не HTML DOM. Пример (часть страницы):

<div><p />
  Text1
  <p />
  Text2
</div>

Когда я хочу найти XPath-позицию Text1, это будет / div / text () [1], но в браузере эта часть кода будет преобразована в HTML DOM и выглядит так:

<div>
  <p>Text1</p>
  <p>Text2</p>
</div>

и Text1 теперь на / div / p [1]

Ответы [ 2 ]

0 голосов
/ 16 июля 2009

Служите XHTML как application / xhtml + xml или создайте его так, чтобы он соответствовал рекомендациям по совместимости HTML .

Вы не можете сказать браузеру, что это HTML (используя его как text / html), и ожидать, что он будет обрабатывать его как XHTML.

(И попытайтесь понять семантику правильно, что за чушь - это абзац, не содержащий ничего, за которым следует текст, которого нет в абзаце?)

0 голосов
/ 16 июля 2009

Не используйте jQuery для доступа к DOM. Вместо этого используйте XPath в Javascript или найдите библиотеку, которая позволит вам запрашивать узлы XML, используя XPath. Подробнее об этом читайте в разделе , посвященном Mozilla Developer Center для XPath, в Javascript .

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...