Я имею дело с очень примитивным HTML конструкцией, которая выглядит следующим образом:XPath индексы узлов
<a NAME="header1"></a><b><font face="Verdana, Serif"><font color="#000000"><font size=+1>Hygiene</font></font></font></b>
<p><b><font face="Verdana, Serif"><font color="#000000">Shampoo</font></b>
<p><b><font face="Verdana, Serif"><font color="#000000"></font>Soap</font></b>
<p><b><font face="Verdana, Serif"><font color="#000000">Deodorant</font></b>
<p><b><font face="Verdana, Serif"><font color="#000000">Toothpaste</font></b>
<p><b><font face="Verdana, Serif"><font color="#000000"></font>Brush</font></b>
<a NAME="header2"></a><b><font face="Verdana, Serif"><font color="#000000"><font size=+1>Food</font></font></font></b>
<p><b><font face="Verdana, Serif"><font color="#000000">Meat</font></b>
<p><b><font face="Verdana, Serif"><font color="#000000">Vegetables</font></b>
<p><b><font face="Verdana, Serif"><font color="#000000">Fruit</font></b>
Дело теперь, я хочу, чтобы все элементы из заголовка Hygiene (вверху), которые являются шампунь, мыло, Дезодорант, Зубная паста, Кисть (и добавьте их, скажем, HashMap>).
Я использую этот XPath, чтобы получить заголовки (Гигиена и пища):
//html/body//b/font/font/font
И это прекрасно работает, я получаю то, что мне нужно.
Затем я использую этот XPath собирать предметы:
//html/body//p/b/font/font
для всех элементов. Таким образом, этот (последний) XPath вернет список из всех элементов, которые являются [Шампунь, Мыло, Дезодорант, Зубная паста, Кисть, Мясо, Овощи, Фрукты]. Дело в том, что я не знаю, когда прекратить сдавать предметы в первом списке (например, когда начинается другой заголовок, который является продуктом питания в этом случае, создайте новый список и поставьте там продукты питания). Все, что я могу получить с этим XPaths, - это значения заголовков (Гигиена, Пища) и ВСЕ элементы из обоих списков (не отдельные).
мне нужно, чтобы получить что-то вроде:
- Карта { "Гигиена", [шампунь, мыло, дезодорант, зубная паста, щетка]}
- Map { "Food", [мясо, овощи, фрукты ]}
Все предметы выбрасываются следующим образом, и они не находятся в отдельных div или частях, чтобы я мог узнать, когда придет новый заголовок.
Спасибо!
У вас будет трудное время, потому что это дерьмовый вход. Вы абсолютно уверены, что это выглядит так (например, названия продуктов * вне * тегов '')? Потому что такие детали будут иметь значение. – Jon
да, вы правы, я обновил html. Элемент находится в теге . –