Metoda vyhodnocení dokumentu XPath C#

XPath lze použít k nalezení konkrétních uzlů, které odpovídají některým kritériím definovaným ve výrazu XPath. Dotaz XPath můžete použít k procházení dokumentu XML nebo HTML. V souladu s tím tento článek vysvětluje, jak používat XPath k výběru konkrétních uzlů podle vašich požadavků.

Práce s XPath pro výběr uzlů ze souborů XML nebo HTML - Instalace C# API

Aspose.HTML for .NET API lze použít k automatizaci procesu výběru konkrétního typu uzlů nebo čtení konkrétních informací z vybraného uzlu. Rozhraní API můžete rychle nakonfigurovat stažením souboru DLL ze stránky New Releases nebo pomocí následujícího instalačního příkazu NuGet:

PM> Install-Package Aspose.Html

Použijte metodu XPath Document.Evaluate() k získání obrázků z webové stránky HTML v C#

K získání obrázků z webové stránky HTML můžete použít metodu Document.Evaluate(). Dokončete tento proces podle následujících kroků:

  1. Inicializací objektu třídy HTMLDocument načtete zdrojový soubor.
  2. Předejte výraz XPath a další parametry metodě Evaluate.
  3. Iterujte vybrané uzly a získejte odkaz pro každý obrázek.

Následující ukázka kódu ukazuje, jak použít metodu XPath Document.Evaluate() k získání obrázků z webové stránky HTML:

// Vytvořte instanci dokumentu HTML
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Vyhodnoťte výraz 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);

    // Iterujte výsledné uzly a vytiskněte je do konzoly
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Použijte metodu XPath Document.Evaluate() k výběru uzlů ze souboru XML v C#

V určitých případech může být nutné vybrat konkrétní uzly ze souboru XML. Následující kroky vysvětlují, jak tyto požadavky splnit:

  1. Načtěte zdrojový soubor XML pomocí třídy HTMLDocument.
  2. Při předávání výrazu XPath a dalších parametrů volejte metodu Evaluate.
  3. Iterujte vybrané uzly a vytiskněte celý obsah vybraných uzlů.

Níže uvedený fragment kódu ukazuje, jak používat metodu XPath Document.Evaluate k výběru uzlů ze souboru XML:

// Vytvořte instanci dokumentu
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Vyhodnoťte výraz 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;

    // Iterujte výsledné uzly a vytiskněte jejich obsah do konzoly
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Použijte metodu XPath Document.Evaluate() k výběru konkrétních informací z vybraných uzlů v C#

Někdy může být potřeba získat konkrétní podrobnosti z uzlu namísto celého obsahu. Chcete-li použít dotaz XPath pro získání konkrétních informací z vybraných uzlů, postupujte podle následujících kroků.

  1. Vstupte do vstupního souboru XML pomocí třídy HTMLDocument.
  2. Vyvoláním metody Evaluate získáte uzly odpovídající výrazu XPath.
  3. Projděte odpovídající uzly a vytiskněte konkrétní obsah z každého uzlu.

Následující ukázka kódu vysvětluje, jak vybrat konkrétní informace z vybraného uzlu v XML pomocí metody XPath Document.Evaluate:

// Vytvořte instanci dokumentu
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Vyberte prodejce, kteří odpovídají výrazu 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;

    // Opakujte vybrané prodejce
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Získejte a vytiskněte jméno prodejce a telefon
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Vyberte a vytiskněte CarID, které odpovídá výrazu 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);
        }
    }
}

Použijte XPath k výběru uzlů v C# - Přečtěte si více

Další podrobnosti o práci s XPath Query se můžete dozvědět v následujících tématech v části dokumentace.

Dotaz XPath k výběru uzlů z HTML nebo XML v C# – bezplatná zkušební licence

Funkce API můžete otestovat na jejich plnou kapacitu, bez jakýchkoli omezení, požádáním o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili používat metodu XPath Query Document.Evaluate k výběru konkrétních uzlů nebo konkrétního obsahu vybraných uzlů, které odpovídají výrazu XPath. Vzhledem k tomu, že v případě, že chcete prodiskutovat jakékoli své obavy, kontaktujte nás na free support forum.

Viz také

Používejte CSS selektory v HTML pomocí C#