Как создать XPATH для элемента HTML DOM? например, "/HTML/BODY/DIV [1]/TABLE [1]/TR [2]/TD [1]/INPUT".
Учитывая элемент DOM, как получить эту строку XPATH? Любые идеи?
Спасибо,
Dattebayo.
Как создать XPATH для элемента HTML DOM? например, "/HTML/BODY/DIV [1]/TABLE [1]/TR [2]/TD [1]/INPUT".
Учитывая элемент DOM, как получить эту строку XPATH? Любые идеи?
Спасибо,
Dattebayo.
Вы можете создать новый domdocument и затем импортировать элемент node
$DD= new DOMDocument('1.0', 'utf-8');
$DD->loadXML( "<html></html>" );
$DD->documentElement->appendChild($DD->importNode($DE,true));
то вы можете использовать xpath в купе:
$xpathe=new DOMXPath($DD);
Насколько я помню, расширение xpath checker для firefox дает вам интерфейс "точка-и-щелчок" для получения элементов xpath для элементов DOM в HTML-документ.
После большой борьбы я нашел способ сделать это.
Наряду с DOM-контуром также используйте SourceIndex каждого node. Как "/Html: 1/Тело: 2/Div: 5/Вход: 6"
Но опять же, 1. Это может не работать в случае динамической страницы (ajax для изменения содержимого). 2. Это может быть не уникальным по сравнению с браузерами, поскольку sourceIndex может варьироваться в зависимости от браузеров на основе механизма рендеринга браузера, который упорядочивает узлы. (не уверенный в этом, хотя, только мысль).
В Mozilla был реализован компонент xpath generator, хотя он никогда не делал его по умолчанию.
Вы можете найти тесты в "финальном патче", прикрепленные к ошибке, с которой я связан, чтобы увидеть, как ее можно использовать. Вы также можете посмотреть его реализацию, может быть полезно.
Вот расширение chrome, которое может вам помочь (ChromyQlip)
https://chrome.google.com/extensions/detail/bkmllkjbfbeephbldeflbnpclgfbjfmn