Как получить последний родительский узел с предками xpath в html паке agility - PullRequest
0 голосов
/ 17 октября 2018

Как получить последний родительский узел с предками XPath в HTML-документе в HTML Agility Pack (HAP)?Например, у меня есть один HTML-документ, пожалуйста, проверьте ниже:

<html>
   <body>
      <div>
         <div>
            <div>
               <a>
                  <h3>
                  </h3>
               </a>
            </div>
         </div>
      </div>
   </body>
</html>

Мне нужно получить последний родительский узел и путь его предков в HAP.Например, XPath вышеупомянутого HTML-документа имеет вид

/html/body/div/div[1]/div[2]/a/h3

Ожидаемый xpath будет

/html/body/div/div[1]/div[2]

Обратите внимание, что мне нужно получить ожидаемый Xpath динамически, а не как значение жесткого кода вручную,Например, на основе последнего элемента мне нужно получить родительский путь с путем предков.

1 Ответ

0 голосов
/ 18 октября 2018

К счастью, Html-Agility-Pack поставляется со свойством XPath и некоторыми методами, позволяющими получить именно то, что вам нужно.

Итак, каким-то образом выберите HtmlNode, перейдите к родительскому узлу и получите XPath предков (из первого / последнего через Linq) следующим образом:

htmlNode.ParentNode.Ancestors().FirstOrDefault().XPath

, чтобы получить первого предка,последний работает так:

htmlNode.ParentNode.Ancestors().LastOrDefault().XPath

или перебирайте Предков.

...