Méthode d'évaluation de document XPath C#

XPath peut être utilisé pour trouver des nœuds spécifiques qui correspondent à certains critères définis dans l’expression XPath. Vous pouvez utiliser la requête XPath pour naviguer dans un document XML ou HTML. En conséquence, cet article explique comment utiliser XPath pour sélectionner des nœuds spécifiques selon vos besoins.

Travailler avec XPath pour sélectionner des nœuds à partir de fichiers XML ou HTML - Installation de l’API C#

L’API Aspose.HTML for .NET peut être utilisée pour automatiser le processus de sélection d’un type spécifique de nœuds ou pour lire des informations spécifiques à partir d’un nœud sélectionné. Vous pouvez rapidement configurer l’API en téléchargeant le fichier DLL depuis la page New Releases ou en utilisant la commande d’installation NuGet suivante :

PM> Install-Package Aspose.Html

Utiliser la méthode XPath Document.Evaluate() pour obtenir des images d’une page Web HTML en C#

Vous pouvez utiliser la méthode Document.Evaluate() pour obtenir des images à partir d’une page Web HTML. Veuillez suivre les étapes ci-dessous pour terminer ce processus :

  1. Initialisez un objet de la classe HTMLDocument pour charger le fichier source.
  2. Transmettez l’expression XPath et d’autres paramètres à la méthode Evaluate.
  3. Parcourez les nœuds sélectionnés et obtenez le lien pour chaque image.

L’exemple de code suivant montre comment utiliser la méthode XPath Document.Evaluate() pour obtenir des images à partir d’une page Web HTML :

// Créer une instance d'un document HTML
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Évaluer l'expression 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);

    // Itérer sur les nœuds résultants et les imprimer sur la console
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Utilisez la méthode XPath Document.Evaluate() pour sélectionner des nœuds à partir d’un fichier XML en C#

Dans certains cas, vous devrez peut-être sélectionner des nœuds spécifiques à partir d’un fichier XML. Les étapes suivantes expliquent comment répondre à ces exigences :

  1. Chargez le fichier XML source avec la classe HTMLDocument.
  2. Appelez la méthode Evaluate tout en transmettant l’expression XPath et d’autres paramètres.
  3. Itérez sur les nœuds sélectionnés et imprimez tout le contenu des nœuds sélectionnés.

L’extrait de code ci-dessous montre comment utiliser la méthode XPath Document.Evaluate pour sélectionner des nœuds à partir d’un fichier XML :

// Créer une instance d'un document
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Évaluer l'expression 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;

    // Itérer sur les nœuds résultants et imprimer leur contenu sur la console
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Utilisez la méthode XPath Document.Evaluate() pour sélectionner des informations spécifiques à partir de nœuds sélectionnés en C#

Parfois, vous devrez peut-être obtenir des détails particuliers d’un nœud au lieu de tout le contenu. Vous pouvez suivre les étapes ci-dessous pour utiliser la requête XPath pour obtenir des informations spécifiques à partir des nœuds sélectionnés.

  1. Accédez au fichier XML d’entrée à l’aide de la classe HTMLDocument.
  2. Appelez la méthode Evaluate pour obtenir les nœuds correspondant à l’expression XPath.
  3. Parcourez les nœuds correspondants et imprimez le contenu spécifique de chaque nœud.

L’exemple de code suivant explique comment sélectionner des informations spécifiques à partir d’un nœud sélectionné dans XML à l’aide de la méthode XPath Document.Evaluate :

// Créer une instance d'un document
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Sélectionnez les revendeurs qui correspondent à l'expression 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;

    // Itérer sur les concessionnaires sélectionnés
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Obtenir et imprimer le nom et le téléphone du concessionnaire
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Sélectionnez et imprimez CarID qui correspond à l'expression 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);
        }
    }
}

Utiliser XPath pour sélectionner des nœuds en C# - En savoir plus

Vous pouvez en savoir plus sur l’utilisation de XPath Query en visitant les rubriques suivantes dans la section documentation.

Requête XPath pour sélectionner des nœuds à partir de HTML ou XML en C# - Licence d’évaluation gratuite

Vous pouvez tester les fonctionnalités de l’API à leur pleine capacité, sans aucune limitation, en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à utiliser la méthode XPath Query Document.Evaluate pour sélectionner des nœuds spécifiques ou un contenu particulier des nœuds sélectionnés qui correspondent à l’expression XPath. Alors que, si vous souhaitez discuter de l’une de vos préoccupations, veuillez nous contacter sur forum d’assistance gratuit.

Voir également

Utilisez des sélecteurs CSS en HTML avec C#