Metoda oceny dokumentu XPath C#

XPath może służyć do znajdowania określonych węzłów spełniających niektóre kryteria zdefiniowane w wyrażeniu XPath. Za pomocą zapytania XPath można nawigować po dokumencie XML lub HTML. W związku z tym w tym artykule wyjaśniono, jak używać XPath do wybierania określonych węzłów zgodnie z własnymi wymaganiami.

Pracuj z XPath, aby wybrać węzły z plików XML lub HTML — instalacja C# API

Aspose.HTML for .NET API może służyć do automatyzacji procesu wyboru określonego rodzaju węzłów lub odczytania określonych informacji z wybranego węzła. Możesz szybko skonfigurować API, pobierając plik DLL ze strony New Releases lub używając następującego polecenia instalacyjnego NuGet:

PM> Install-Package Aspose.Html

Użyj metody XPath Document.Evaluate(), aby pobrać obrazy ze strony HTML w języku C#

Możesz użyć metody Document.Evaluate(), aby pobrać obrazy ze strony HTML. Wykonaj poniższe czynności, aby zakończyć ten proces:

  1. Zainicjuj obiekt klasy HTMLDocument, aby załadować plik źródłowy.
  2. Przekaż wyrażenie XPath i inne parametry do metody Evaluate.
  3. Przejrzyj wybrane węzły i uzyskaj łącze do każdego obrazu.

Poniższy przykładowy kod demonstruje sposób użycia metody XPath Document.Evaluate() w celu pobrania obrazów ze strony internetowej HTML:

// Utwórz instancję dokumentu HTML
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Oceń wyrażenie 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);

    // Iteruj po wynikowych węzłach i wydrukuj je w konsoli
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Użyj metody XPath Document.Evaluate(), aby wybrać węzły z pliku XML w C#

W niektórych przypadkach może być konieczne wybranie określonych węzłów z pliku XML. Poniższe kroki wyjaśniają, jak spełnić takie wymagania:

  1. Załaduj źródłowy plik XML z klasą HTMLDocument.
  2. Wywołaj metodę Evaluate podczas przekazywania wyrażenia XPath i innych parametrów.
  3. Iteruj po wybranych węzłach i wydrukuj całą zawartość wybranych węzłów.

Poniższy fragment kodu pokazuje, jak użyć metody XPath Document.Evaluate do wybrania węzłów z pliku XML:

// Utwórz instancję dokumentu
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Oceń wyrażenie 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;

    // Iteruj po wynikowych węzłach i wydrukuj ich zawartość w konsoli
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Użyj metody XPath Document.Evaluate() do pobrania określonych informacji z wybranych węzłów w języku C#

Czasami może być konieczne uzyskanie określonych szczegółów z węzła zamiast całej zawartości. Możesz wykonać poniższe kroki, aby użyć zapytania XPath do uzyskania określonych informacji z wybranych węzłów.

  1. Uzyskaj dostęp do wejściowego pliku XML przy użyciu klasy HTMLDocument.
  2. Wywołaj metodę Evaluate, aby uzyskać węzły pasujące do wyrażenia XPath.
  3. Przejdź przez pasujące węzły i wydrukuj określoną zawartość z każdego węzła.

Poniższy przykładowy kod wyjaśnia, jak pobrać określone informacje z wybranego węzła w XML przy użyciu metody XPath Document.Evaluate:

// Utwórz instancję dokumentu
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Wybierz dealerów pasujących do wyrażenia 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;

    // Iteruj po wybranych dilerach
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Uzyskaj i wydrukuj nazwę dealera i telefon
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Wybierz i wydrukuj CarID pasujące do wyrażenia 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);
        }
    }
}

Użyj XPath, aby wybrać węzły w C# - Czytaj więcej

Możesz dowiedzieć się więcej szczegółów na temat pracy z XPath Query, odwiedzając następujące tematy w sekcji dokumentacja.

Zapytanie XPath, aby wybrać węzły z HTML lub XML w języku C# — bezpłatna licencja ewaluacyjna

Możesz przetestować wszystkie funkcje API, bez żadnych ograniczeń, prosząc o darmową licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się, jak używać metody XPath Query Document.Evaluate do wybierania określonych węzłów lub określonej zawartości wybranych węzłów pasujących do wyrażenia XPath. Natomiast jeśli chcesz przedyskutować swoje wątpliwości, skontaktuj się z nami na bezpłatne forum pomocy.

Zobacz też

Użyj selektorów CSS w HTML przy użyciu C#