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
- Použijte metodu XPath Document.Evaluate() k získání obrázků z webové stránky HTML v C#
- Použijte metodu XPath Document.Evaluate() k výběru uzlů ze souboru XML v C#
- Použijte metodu XPath Document.Evaluate() k výběru konkrétních informací z vybraných uzlů v C#
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ů:
- Inicializací objektu třídy HTMLDocument načtete zdrojový soubor.
- Předejte výraz XPath a další parametry metodě Evaluate.
- 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:
- Načtěte zdrojový soubor XML pomocí třídy HTMLDocument.
- Při předávání výrazu XPath a dalších parametrů volejte metodu Evaluate.
- 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ů.
- Vstupte do vstupního souboru XML pomocí třídy HTMLDocument.
- Vyvoláním metody Evaluate získáte uzly odpovídající výrazu XPath.
- 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.