XPath-dokumentutvärderingsmetod C#

XPath kan användas för att hitta specifika noder som matchar vissa kriterier som definieras i XPath-uttrycket. Du kan använda XPath-frågan för att navigera genom ett XML- eller HTML-dokument. Följaktligen förklarar den här artikeln hur du använder XPath för att välja specifika noder enligt dina krav.

Arbeta med XPath för att välja noder från XML- eller HTML-filer - C# API-installation

Aspose.HTML for .NET API kan användas för att automatisera processen för att välja specifik typ av noder, eller läsa specifik information från en vald nod. Du kan snabbt konfigurera API:et genom att ladda ner DLL-filen från sidan New Releases eller använda följande installationskommando NuGet:

PM> Install-Package Aspose.Html

Använd metoden XPath Document.Evaluate() för att hämta bilder från en HTML-webbsida i C#

Du kan använda metoden Document.Evaluate() för att hämta bilder från en HTML-webbsida. Följ stegen nedan för att slutföra processen:

  1. Initiera ett objekt av klassen HTMLDocument för att ladda källfilen.
  2. Skicka XPath-uttrycket och andra parametrar till Evaluate-metoden.
  3. Iterera genom de valda noderna och få länken för varje bild.

Följande kodexempel visar hur man använder XPath Document.Evaluate()-metoden för att hämta bilder från en HTML-webbsida:

// Skapa en instans av ett HTML-dokument
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Utvärdera XPath-uttrycket
    var result = doc.Evaluate("//main/div[position() mod 2 = 1]//img[@class = 'photo']", doc, doc.CreateNSResolver(doc), Aspose.Html.Dom.XPath.XPathResultType.Any, null);

    // Iterera över de resulterande noderna och skriv ut dem till konsolen
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Använd metoden XPath Document.Evaluate() för att välja noder från XML-fil i C#

I vissa fall kan du behöva välja specifika noder från en XML-fil. Följande steg förklarar hur man uppfyller sådana krav:

  1. Ladda XML-källfilen med klassen HTMLDocument.
  2. Anropa Evaluate-metoden samtidigt som du skickar XPath-uttrycket och andra parametrar.
  3. Iterera över de valda noderna och skriv ut hela innehållet i valda noder.

Kodavsnittet nedan visar hur du använder XPath Document.Evaluate-metoden för att välja noder från XML-fil:

// Skapa en instans av ett dokument
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Utvärdera XPath-uttrycket
    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;

    // Iterera över de resulterande noderna och skriv ut deras innehåll till konsolen
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Använd metoden XPath Document.Evaluate() för att välja specifik information från valda noder i C#

Ibland kan du behöva få särskilda detaljer från en nod istället för hela innehållet. Du kan följa stegen nedan för att använda XPath-frågan för att hämta specifik information från de valda noderna.

  1. Få åtkomst till XML-inmatningsfilen med klassen HTMLDocument.
  2. Anropa Evaluate-metoden för att få noderna som matchar XPath-uttrycket.
  3. Gå igenom de matchande noderna och skriv ut det specifika innehållet från varje nod.

Följande kodexempel förklarar hur du väljer specifik information från en vald nod i XML med XPath Document.Evaluate-metoden:

// Skapa en instans av ett dokument
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Välj återförsäljare som matchar XPath-uttryck
    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;

    // Iterera över de utvalda återförsäljarna
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Skaffa och skriv ut återförsäljarens namn och telefonnummer
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Välj och skriv ut CarID som matchar XPath-uttrycket
        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);
        }
    }
}

Använd XPath för att välja noder i C# - Läs mer

Du kan lära dig mer information om att arbeta med XPath Query genom att besöka följande ämnen i avsnittet dokumentation.

XPath-fråga för att välja noder från HTML eller XML i C# - gratis utvärderingslicens

Du kan testa API-funktionerna till sin fulla kapacitet, utan några begränsningar genom att begära en gratis temporär licens.

Slutsats

I den här artikeln har du lärt dig hur du använder XPath Query Document.Evaluate-metoden för att välja specifika noder eller särskilt innehåll i de valda noderna som matchar XPath-uttrycket. Om du vill diskutera något av dina problem, vänligen kontakta oss på gratis supportforum.

Se även

Använd CSS-väljare i HTML med C#