XPath Dokumentauswertungsmethode C#

XPath kann verwendet werden, um bestimmte Knoten zu finden, die einigen Kriterien entsprechen, die im XPath-Ausdruck definiert sind. Sie können eine XPath-Abfrage verwenden, um durch ein XML oder HTML Dokument zu navigieren. Dementsprechend erläutert dieser Artikel, wie Sie XPath verwenden, um bestimmte Knoten gemäß Ihren Anforderungen auszuwählen.

Arbeiten Sie mit XPath, um Knoten aus XML oder HTML Dateien auszuwählen – C# API-Installation

Aspose.HTML for .NET API kann verwendet werden, um den Prozess zu automatisieren, um einen bestimmten Knotentyp auszuwählen oder bestimmte Informationen von einem ausgewählten Knoten zu lesen. Sie können die API schnell konfigurieren, indem Sie die DLL-Datei von der Seite New Releases herunterladen oder den folgenden NuGet-Installationsbefehl verwenden:

PM> Install-Package Aspose.Html

Verwenden Sie die XPath Document.Evaluate()-Methode, um Bilder von einer HTML-Webseite in C# abzurufen

Sie können die Methode Document.Evaluate() verwenden, um Bilder von einer HTML-Webseite zu erhalten. Bitte führen Sie die folgenden Schritte aus, um diesen Vorgang abzuschließen:

  1. Initialisieren Sie ein Objekt der Klasse HTMLDocument, um die Quelldatei zu laden.
  2. Übergeben Sie den XPath-Ausdruck und andere Parameter an die Evaluate-Methode.
  3. Iterieren Sie durch die ausgewählten Knoten und erhalten Sie den Link für jedes Bild.

Das folgende Codebeispiel zeigt, wie die Methode XPath Document.Evaluate() verwendet wird, um Bilder von einer HTML-Webseite abzurufen:

// Erstellen Sie eine Instanz eines HTML Dokuments
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Werten Sie den XPath-Ausdruck aus
    var result = doc.Evaluate("//main/div[position() mod 2 = 1]//img[@class = 'photo']", doc, doc.CreateNSResolver(doc), Aspose.Html.Dom.XPath.XPathResultType.Any, null);

    // Iterieren Sie über die resultierenden Knoten und geben Sie sie auf der Konsole aus
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Verwenden Sie die XPath Document.Evaluate()-Methode, um Knoten aus der XML-Datei in C# auszuwählen

In bestimmten Fällen müssen Sie möglicherweise bestimmte Knoten aus einer XML-Datei auswählen. Die folgenden Schritte erläutern, wie solche Anforderungen erfüllt werden:

  1. Laden Sie die XML-Quelldatei mit der Klasse HTMLDocument.
  2. Rufen Sie die Evaluate-Methode auf, während Sie den XPath-Ausdruck und andere Parameter übergeben.
  3. Iterieren Sie über die ausgewählten Knoten und drucken Sie den gesamten Inhalt der ausgewählten Knoten.

Das folgende Code-Snippet zeigt, wie die XPath-Methode Document.Evaluate verwendet wird, um Knoten aus der XML-Datei auszuwählen:

// Erstellen Sie eine Instanz eines Dokuments
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Werten Sie den XPath-Ausdruck aus
    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;

    // Iterieren Sie über die resultierenden Knoten und geben Sie deren Inhalt auf der Konsole aus
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Verwenden Sie die XPath Document.Evaluate()-Methode, um bestimmte Informationen aus ausgewählten Knoten in C# auszuwählen

Manchmal müssen Sie statt des gesamten Inhalts bestimmte Details von einem Knoten abrufen. Sie können die folgenden Schritte ausführen, um die XPath-Abfrage zum Abrufen spezifischer Informationen von den ausgewählten Knoten zu verwenden.

  1. Greifen Sie mit der Klasse HTMLDocument auf die XML-Eingabedatei zu.
  2. Rufen Sie die Evaluate-Methode auf, um die Knoten abzurufen, die mit dem XPath-Ausdruck übereinstimmen.
  3. Durchlaufen Sie die übereinstimmenden Knoten und drucken Sie den spezifischen Inhalt von jedem Knoten.

Das folgende Codebeispiel erläutert, wie bestimmte Informationen aus einem ausgewählten Knoten in XML mithilfe der XPath-Methode „Document.Evaluate“ ausgewählt werden:

// Erstellen Sie eine Instanz eines Dokuments
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Wählen Sie Händler aus, die dem XPath-Ausdruck entsprechen
    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;

    // Iterieren Sie über die ausgewählten Händler
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Name und Telefonnummer des Händlers abrufen und ausdrucken
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Wählen Sie CarID aus, die dem XPath-Ausdruck entspricht, und drucken Sie sie aus
        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);
        }
    }
}

Verwenden Sie XPath, um Knoten in C# auszuwählen – mehr dazu

Weitere Einzelheiten zum Arbeiten mit der XPath-Abfrage finden Sie in den folgenden Themen im Abschnitt Dokumentation.

XPath-Abfrage zum Auswählen von Knoten aus HTML oder XML in C# – kostenlose Evaluierungslizenz

Sie können die API funktionen ohne Einschränkungen in vollem Umfang testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie die Methode XPath Query Document.Evaluate verwenden, um bestimmte Knoten oder bestimmte Inhalte der ausgewählten Knoten auszuwählen, die mit dem XPath-Ausdruck übereinstimmen. Falls Sie jedoch eines Ihrer Bedenken besprechen möchten, wenden Sie sich bitte an uns unter kostenloses Support-Forum.

Siehe auch

CSS-Selektoren in HTML mit C# verwenden