Извлечь содержимое элемента в виде списка и исключить вложенный элемент с XPath 1.0 - PullRequest
0 голосов
/ 30 августа 2018

В настоящее время я пытаюсь извлечь список элементов li строк, но я хотите исключить элемент form

То, что я до сих пор достиг, - это не возвращать два элемента из-за элементов a между

//*[@id="quickPromoBucketContent"]//li[descendant::form]/text()

HTML:

<div class="bucket" id="quickPromoBucketContent">
 <div class="content">
  <ul class="qpUL">
  <li>Sparen Sie 5&nbsp;% beim Kauf von <a href="">Wasserdichte Handyhülle 2 Stück</a> wenn Sie 1 oder mehrere Auto Handy Halterung aus dem Angebot von UGREEN GROUP LIMITED UK
    erwerben! Geben Sie den Code 49DFYWAQ an der Kasse ein. <a href="" target="AmazonHelp">Weitere Informationen</a>        (Teilnahmebedingungen)
    <form method="post" action="/gp/item-dispatch">
    </form>
  </li>
  <li>Sparen Sie 5&nbsp;% beim Kauf von <a href="">USB C PD Schnellladekabel</a> wenn Sie 1 oder mehrere Auto Handyhalterung aus dem Angebot von UGREEN GROUP LIMITED UK erwerben!
    Geben Sie den Code 5BWVW4YN an der Kasse ein. <a href="" target="AmazonHelp">Weitere Informationen</a>        (Teilnahmebedingungen)
    <form method="post" action="/gp/item-dispatch">
    </form>
  </li>
  <li><span id="productPromotion_clipped"><span>Aktivieren Sie diesen Coupon</span>, um beim Kauf dieses Produkts bei Amazon.de 10&nbsp;% zu sparen.</span>
  </li><input type="hidden" name="specialOffersHidden" id="specialOffersHidden">
  <li>
    <div class="amabot_widget">
    </div>
  </li>
 </ul>
</div>
</div>

1 Ответ

0 голосов
/ 30 августа 2018

Угадывая из вашего примера кода, который вы хотите запросить

  • все элементы li ниже и элемент с атрибутом id="quickPromoBucketContent"
  • которые имеют форму потомка
  • получить оттуда текст всех дочерних / дочерних узлов

Попробуйте это так:

//*[@id="quickPromoBucketContent"]//li[descendant::form]/descendant-or-self::*/text()

Демонстрация XPath

...