Тестування виразів 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()із виразом, контекстом, засобом розпізнавання просторів імен за потреби та очікуванимXPathResultType. - Прочитайте повернуте значення або переберіть відповідні вузли за допомогою
IterateNext().
Якщо вираз використовує префікси просторів імен, передайте засіб, який зіставляє ці префікси з URI просторів імен. Для звичайних HTML-запитів без префіксів можна передати null.
Документація XPath і довідник API
Ці матеріали пояснюють обчислення XPath, навігацію HTML і приклади для XML:
- How to Use XPath in HTML
пояснює параметри
Evaluate()і вибір вузлів на C#. - HTML Navigation in C# порівнює XPath, CSS-селектори та безпосередню навігацію DOM.
- Select XML Nodes with XPath описує 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, використовуйте задокументований сценарій XML на C#.
3. Чому вираз XPath не повертає вузлів?
Перевірте назви вузлів, предикати, контекстний вузол і структуру завантаженого документа. Для XML або вмісту з просторами імен також передайте засіб, який зіставляє кожен префікс у виразі з відповідним URI.
4. Коли слід використовувати XPath замість CSS-селектора?
Використовуйте XPath, коли запит має зіставляти текст, переходити до предків чи сусідніх вузлів або застосовувати предикати, які складно виразити в CSS. Для звичних запитів за класом, ID, атрибутом і нащадками використовуйте CSS-селектор.
Пов’язані сценарії вибору та редагування HTML
Продовжуйте роботу із CSS-селекторами, редагуванням DOM, вилученням даних таблиць або зображень на C#.