Метод оценки документа XPath C#

XPath можно использовать для поиска конкретных узлов, соответствующих некоторым критериям, определенным в выражении XPath. Вы можете использовать запрос XPath для навигации по документу XML или HTML. Соответственно, в этой статье объясняется, как использовать XPath для выбора определенных узлов в соответствии с вашими требованиями.

Работа с XPath для выбора узлов из файлов XML или HTML — установка C# API

Aspose.HTML for .NET API можно использовать для автоматизации процесса выбора определенного типа узлов или чтения определенной информации с выбранного узла. Вы можете быстро настроить API, загрузив файл DLL со страницы Новые версии или воспользовавшись следующей командой установки NuGet:

PM> Install-Package Aspose.Html

Используйте метод XPath Document.Evaluate() для получения изображений с веб-страницы HTML в C#

Вы можете использовать метод Document.Evaluate() для получения изображений с веб-страницы HTML. Для завершения этого процесса выполните следующие действия:

  1. Инициализируйте объект класса HTMLDocument для загрузки исходного файла.
  2. Передайте выражение XPath и другие параметры в метод Evaluate.
  3. Переберите выбранные узлы и получите ссылку для каждого изображения.

В следующем примере кода показано, как использовать метод XPath Document.Evaluate() для получения изображений с веб-страницы HTML:

// Создать экземпляр HTML-документа
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Оценить выражение XPath
    var result = doc.Evaluate("//main/div[position() mod 2 = 1]//img[@class = 'photo']", doc, doc.CreateNSResolver(doc), Aspose.Html.Dom.XPath.XPathResultType.Any, null);

    // Перебрать полученные узлы и вывести их на консоль
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Используйте метод XPath Document.Evaluate() для выбора узлов из XML-файла в С#

В некоторых случаях может потребоваться выбрать определенные узлы из XML-файла. Следующие шаги объясняют, как выполнить такие требования:

  1. Загрузите исходный файл XML с классом HTMLDocument.
  2. Вызовите метод Evaluate при передаче выражения XPath и других параметров.
  3. Перебрать выбранные узлы и распечатать все содержимое выбранных узлов.

Фрагмент кода ниже показывает, как использовать метод XPath Document.Evaluate для выбора узлов из XML-файла:

// Создать экземпляр документа
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Оценить выражение XPath
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // Перебрать полученные узлы и вывести их содержимое на консоль.
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Используйте метод XPath Document.Evaluate() для выбора конкретной информации из выбранных узлов в C#

Иногда вам может понадобиться получить от узла определенные детали, а не все содержимое. Вы можете выполнить следующие шаги, чтобы использовать запрос XPath для получения конкретной информации от выбранных узлов.

  1. Получите доступ к входному файлу XML с помощью класса HTMLDocument.
  2. Вызовите метод Evaluate, чтобы получить узлы, соответствующие выражению XPath.
  3. Переберите совпадающие узлы и распечатайте конкретное содержимое из каждого узла.

В следующем образце кода объясняется, как выбрать конкретную информацию из выбранного узла в XML с помощью метода XPath Document.Evaluate:

// Создать экземпляр документа
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Выберите дилеров, которые соответствуют выражению XPath
    var dealers = doc.Evaluate("//Dealer[descendant::Car[descendant::Model > 2005 and descendant::Price < 25000]]", doc, doc.CreateNSResolver(doc), XPathResultType.Any, null);
    Aspose.Html.Dom.Node dealer;

    // Перебрать выбранных дилеров
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Получить и распечатать имя и телефон дилера
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Выберите и напечатайте CarID, соответствующий выражению XPath.
        var carIds = doc.Evaluate(".//Car[descendant::Model > 2005 and descendant::Price < 25000]/@CarID", dealer, doc.CreateNSResolver(doc), XPathResultType.Any, null);
        Aspose.Html.Dom.Node carId;

        while ((carId = carIds.IterateNext()) != null)
        {
            Console.WriteLine("Car id: " + carId.TextContent);
        }
    }
}

Использование XPath для выбора узлов в C# — Подробнее

Вы можете узнать больше о работе с XPath Query, посетив следующие темы в разделе документация.

Запрос XPath для выбора узлов из HTML или XML в C# — бесплатная ознакомительная лицензия

Вы можете протестировать функции API на полную мощность без каких-либо ограничений, запросив бесплатную временную лицензию.

Заключение

В этой статье вы узнали, как использовать метод XPath Query Document.Evaluate для выбора определенных узлов или определенного содержимого выбранных узлов, которые соответствуют выражению XPath. Принимая во внимание, что если вы хотите обсудить какие-либо проблемы, свяжитесь с нами на бесплатном форуме поддержки.

Смотрите также

Используйте селекторы CSS в HTML с помощью C#