Я использую библиотеку HTML-анализатора для анализа веб-страницы в XML. С помощью XML я хочу выбирать узлы, содержащие текст, принадлежащий друг другу, с помощью запросов xPath.
Вот пример HTML:
<p><span style="font-family: 'Verdana','sans-serif'; font-size: 32pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 11pt; mso-bidi-font-size: 18.0pt;"> <span style="line-height: 115%; font-family: 'Verdana','sans-serif'; font-size: 36pt; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-ansi-language: SV; mso-bidi-language: AR-SA;"> </span> VECKA 3</span></span></p><p><span style="font-family: 'Verdana','sans-serif'; font-size: 32pt;"></span><span style="font-family: 'Verdana','sans-serif'; font-size: 11pt; mso-bidi-font-size: 18.0pt;"> 17-21 JANUARI</span></p>
<p style="margin-bottom: 0pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 11pt; mso-bidi-font-size: 18.0pt;"> </span><span style="font-family: 'Verdana','sans-serif'; font-size: 11pt; mso-bidi-font-size: 18.0pt;">11.30-14.30</span></p>
<p style="margin-bottom: 0pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-bidi-font-size: 15.0pt;">MÅNDAG: Parmesangratinerad tungafile med paprikasås</span></p>
<p style="margin-bottom: 0pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt; mso-bidi-font-size: 15.0pt;"> Biffgryta med syltlök & ris</span></p>
Используя xPath в разобранном фрагменте HTML, я хочу выбрать <span>
-узел, содержащий слово MÅNDAG, а также следующий <span>
-узел, который ему принадлежит. Так, например, я хочу выбрать узлы, которые содержат текст: «MÅNDAG: Parmesangratinerad tungafile med паприки» и текст «Biffgryta med syltlök & ris».
Я думаю, что я хочу использовать xPath, который выглядит примерно так:
"//span[contains(.,'MÅNDAG') or (contains(.,' ') and ../parent-sibling::/span[contains(.,'MÅNDAG')]]"
Есть идеи?