Проблема: Я хочу найти xpath узлов, которые формируют текстовую строку в документе HTML. Язык используется питон (LXML для разбора документа)Получить xpath для узлов, которые образуют строку в документе HTML
Чтобы проиллюстрировать идею рассмотреть документ:
<HTML>
<HEAD>
<TITLE>sample document</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<HR>
<a href="http://google.com">Goog</a>
<H1>This is one header</H1>
<H2>This is a another Header</H2>
<P>Travel from
<P>
<B>SFO to JFK</B>
<BR>
<B><I>on May 2, 2015 at 2:00 pm. For details go to confirm.com </I></B>
<HR>
<div style="color:#0000FF">
<h3>Traveler <b> name </b> is
<p> John Doe </p>
</div>
.....
Теперь, учитывая строки «SFO в JFK на 2 мая 2015 »и« Имя путешественника - Джон Доу », как я могу получить Xpath для первого узла в наборе узлов, которые образуют строку. (Если это трудно даже множество узлов будет делать)
Примеры выходов:
"SFO to JFK on May 2, 2015" -> /html/body/p/p/b
"Traveler name is John Doe" -> /html/body/p/p/div/h3
В последующем наблюдении, вместо строки выше, если у нас есть регулярное выражение, что будет подход к решению проблема?
Примечание: С точки зрения реализации питона, я подходил к проблеме, как в фрагменте кода ниже
import lxml.html as lh
from StringIO import StringIO
from lxml import etree
elem_tree = lh.parse(StringIO(html_document))
xpath = etree.XPath(_the_xpath_here)
list_of_nodes = xpath(elem_tree)
Не будет ли xpath быть просто «// B», потому что это единственный элемент html, который вы ищете, который должен предоставить вам массив всех элементов B на странице. Также вы можете запускать xpaths в консоли Chrome с помощью $ x ("xpath"); – Asheliahut
Ну, извините, я должен был уточнить. Документ не исправлен. Как и в вопросе, должен быть, если у меня есть HTML и набор строк, как бы получить xpath? – Ark