Как создать XPATH для элемента HTML DOM? - PullRequest
10 голосов
/ 26 августа 2009

Как создать XPATH для элемента HTML DOM? например, /HTML/BODY/DIV[1]/TABLE[1]/TR[2]/TD[1]/INPUT".

Учитывая элемент DOM, как получить эту строку XPATH? Есть идеи?

Спасибо

Dattebayo.

Ответы [ 5 ]

4 голосов
/ 05 июня 2010

Вы можете создать новый документ и затем импортировать элемент узла

$DD= new DOMDocument('1.0', 'utf-8');
$DD->loadXML( "<html></html>" );
$DD->documentElement->appendChild($DD->importNode($DE,true));

тогда вы можете использовать xpath в куполе:

$xpathe=new DOMXPath($DD);
1 голос
/ 26 августа 2009

Как я помню, расширение xpath checker для Firefox предоставляет вам интерфейс «укажи и щелкни» для получения элементов xpath to DOM в документе HTML.

0 голосов
/ 27 сентября 2010

Вот расширение Chrome, которое может вам помочь (ChromyQlip)

https://chrome.google.com/extensions/detail/bkmllkjbfbeephbldeflbnpclgfbjfmn

0 голосов
/ 26 октября 2009

В Mozilla был реализован компонент xpath generator , хотя он никогда не устанавливался по умолчанию.

Вы можете найти тесты в «финальном патче», прикрепленном к ошибке, с которой я связан, чтобы посмотреть, как ее можно использовать. Вы также можете посмотреть его реализацию, может быть полезно.

0 голосов
/ 03 сентября 2009

После долгой борьбы я нашел способ сделать это.

Наряду с путем DOM также используйте SourceIndex каждого узла. Like "/ Html: 1 / Body: 2 / Div: 5 / Input: 6"

Но опять же, 1. Это может не сработать в случае динамической страницы (ajax для изменения содержимого). 2. Это может быть не уникально для разных браузеров, так как sourceIndex может отличаться для разных браузеров, в зависимости от того, как механизм визуализации браузера размещает узлы. (пока не уверен в этом, просто мысль).

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