Проверка XPath-выражений онлайн
Используйте XPath Tester, чтобы находить узлы на общедоступной веб-странице с помощью XPath-выражения. Введите URL и выражение, например //img, //main//a или //*[@data-id]. Инструмент покажет найденные узлы и создаст C#-код для того же запроса.
- Введите URL веб-страницы, которую нужно проверить.
- Введите XPath-выражение требуемых узлов.
- Нажмите 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#
- Создайте
HTMLDocumentиз локального HTML-файла или URL. - Задайте XPath-выражение и выберите подходящий узел контекста.
- Вызовите
Evaluate()и передайте выражение, контекст,resolverдля пространств имён при необходимости и ожидаемыйXPathResultType. - Прочитайте полученное значение или переберите найденные узлы с помощью
IterateNext().
Если выражение содержит префиксы пространств имён, передайте resolver, который сопоставляет их с URI пространств имён. Для обычных HTML-запросов без префиксов значение resolver может быть null.
Документация и API Reference по XPath
В этих материалах описаны выполнение XPath-запросов, навигация по HTML и работа с XML:
- Как использовать XPath – метод Evaluate()
объясняет параметры
Evaluate()и показывает выбор узлов на C#. - Навигация по HTML-документу на C# сравнивает XPath, CSS-селекторы и прямой обход DOM.
- Как использовать XPath для выбора узлов XML рассматривает XPath-запросы для 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#.