Проверка XPath-выражений онлайн

Используйте XPath Tester, чтобы находить узлы на общедоступной веб-странице с помощью XPath-выражения. Введите URL и выражение, например //img, //main//a или //*[@data-id]. Инструмент покажет найденные узлы и создаст C#-код для того же запроса.

  1. Введите URL веб-страницы, которую нужно проверить.
  2. Введите XPath-выражение требуемых узлов.
  3. Нажмите Find, просмотрите найденные узлы и скопируйте результат или созданный C#-код.


Выполнение XPath-запроса для HTML на C#

Aspose.HTML for .NET вычисляет XPath-выражения для DOM документа. Пример загружает URL, указанный в виджете, вызывает Evaluate() и обрабатывает полученный IXPathResult. При изменении URL или выражения в виджете этот серверный C#-пример обновляется автоматически. Узел контекста определяет начальную точку вычисления, а XPathResultType – запрашиваемый тип результата.

XPath-запрос на C#

using System;
using Aspose.Html;
using Aspose.Html.Dom;
using Aspose.Html.Dom.XPath;

// Create an HTML document
string url = "https://www.aspose.com/";
using HTMLDocument document = new HTMLDocument(url);

// Evaluate the XPath expression
IXPathResult result = document.Evaluate("//a", document, null, XPathResultType.Any, null);

// Process the XPath result
switch (result.ResultType)
{
    case XPathResultType.Number:
        Console.WriteLine(result.NumberValue);
        break;
    case XPathResultType.String:
        Console.WriteLine(result.StringValue);
        break;
    case XPathResultType.Boolean:
        Console.WriteLine(result.BooleanValue);
        break;
    default:
        Node node;
        while ((node = result.IterateNext()) != null)
        {
            if (node is Element element)
            {
                Console.WriteLine(element.OuterHTML);
            }
            else
            {
                Console.WriteLine(node.TextContent);
            }
        }
        break;
}

Примеры XPath-запросов

XPath позволяет выбирать элементы по имени, атрибуту, позиции, иерархии или текстовому содержимому:

  • //img выбирает все элементы <img> в документе.
  • //main//a выбирает ссылки на любом уровне вложенности внутри <main>.
  • //*[@data-id] выбирает элементы с атрибутом data-id.
  • //ul/li[1] выбирает первый дочерний элемент <li> каждого списка <ul>.
  • //p[contains(normalize-space(.), 'price')] выбирает абзацы, нормализованный текст которых содержит price.

Для простых запросов по классу, ID, атрибуту или имени элемента, которым не нужны текстовые условия и оси XPath, обычно удобнее использовать CSS Selector Tester .


Работа с XPath API на C#

  1. Создайте HTMLDocument из локального HTML-файла или URL.
  2. Задайте XPath-выражение и выберите подходящий узел контекста.
  3. Вызовите Evaluate() и передайте выражение, контекст, resolver для пространств имён при необходимости и ожидаемый XPathResultType .
  4. Прочитайте полученное значение или переберите найденные узлы с помощью IterateNext() .

Если выражение содержит префиксы пространств имён, передайте resolver, который сопоставляет их с URI пространств имён. Для обычных HTML-запросов без префиксов значение resolver может быть null.


Документация и API Reference по XPath

В этих материалах описаны выполнение XPath-запросов, навигация по HTML и работа с XML:


Установка Aspose.HTML for .NET

Установите Aspose.HTML for .NET из NuGet с помощью .NET CLI:

dotnet add package Aspose.HTML

Также можно использовать интерфейс диспетчера пакетов NuGet или выполнить Install-Package Aspose.HTML в консоли диспетчера пакетов. Подробные инструкции приведены в руководстве по установке . Чтобы протестировать API без ограничений ознакомительной версии, запросите временную лицензию .


Часто задаваемые вопросы

1. Что такое XPath-выражение?

XPath-выражение – это запрос, который выбирает узлы или вычисляет значения из дерева HTML- или XML-документа. В выражении можно использовать пути, оси, предикаты и функции для описания требуемого результата.

2. Можно ли применять XPath к HTML и XML?

Да. XPath работает с деревом DOM и позволяет выбирать узлы в HTML- и XML-документах. Онлайн-инструмент предназначен для общедоступных HTML-страниц; для XML, обработки пространств имён и специальной загрузки используйте описанный в документации C#-подход.

3. Почему XPath-выражение не возвращает узлы?

Проверьте имена узлов, условия, узел контекста и структуру загруженного документа. Для XML или содержимого с пространствами имён также передайте resolver, сопоставляющий все префиксы выражения с URI пространств имён.

4. Когда следует использовать XPath вместо CSS-селектора?

Используйте XPath, когда запрос должен проверять текст, переходить к предкам или соседним узлам либо применять условия, которые сложно выразить через CSS. Для привычных запросов по классу, ID, атрибуту и потомкам используйте CSS-селектор.

Другие способы поиска и изменения HTML

Продолжите работу с CSS-селекторами, редактированием DOM, извлечением данных из таблиц или изображений на C#.