Método de evaluación del documento XPath C#

XPath se puede utilizar para buscar nodos específicos que coincidan con algunos criterios definidos en la expresión XPath. Puede usar la consulta XPath para navegar a través de un documento XML o HTML. En consecuencia, este artículo explica cómo usar XPath para seleccionar nodos específicos según sus requisitos.

Trabajar con XPath para seleccionar nodos de archivos XML o HTML: instalación de la API de C#

Aspose.HTML for .NET La API se puede usar para automatizar el proceso para seleccionar un tipo específico de nodos o leer información específica de un nodo seleccionado. Puede configurar rápidamente la API descargando el archivo DLL desde la página Nuevas versiones o usando el siguiente comando de instalación NuGet:

PM> Install-Package Aspose.Html

Utilice el método XPath Document.Evaluate() para obtener imágenes de una página web HTML en C#

Puede usar el método Document.Evaluate() para obtener imágenes de una página web HTML. Siga los pasos a continuación para completar este proceso:

  1. Inicialice un objeto de la clase HTMLDocument para cargar el archivo fuente.
  2. Pase la expresión XPath y otros parámetros al método Evaluate.
  3. Iterar a través de los nodos seleccionados y obtener el enlace para cada imagen.

El siguiente ejemplo de código demuestra cómo usar el método XPath Document.Evaluate() para obtener imágenes de una página web HTML:

// Crear una instancia de un documento HTML
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "xpath.htm")))
{
    // Evaluar la expresión 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);

    // Iterar sobre los nodos resultantes e imprimirlos en la consola
    Aspose.Html.Dom.Node node;
    while ((node = result.IterateNext()) != null)
    {
        var img = (Aspose.Html.HTMLImageElement)node;
        Console.WriteLine(img.Src);
    }
}

Utilice el método XPath Document.Evaluate() para seleccionar nodos del archivo XML en C#

En ciertos casos, es posible que deba seleccionar nodos específicos de un archivo XML. Los siguientes pasos explican cómo cumplir con dichos requisitos:

  1. Cargue el archivo XML de origen con la clase HTMLDocument.
  2. Llame al método Evaluate mientras pasa la expresión XPath y otros parámetros.
  3. Iterar sobre los nodos seleccionados e imprimir todo el contenido de los nodos seleccionados.

El fragmento de código a continuación muestra cómo usar el método XPath Document.Evaluate para seleccionar nodos del archivo XML:

// Crear una instancia de un documento
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Evaluar la expresión 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;

    // Iterar sobre los nodos resultantes e imprimir su contenido en la consola
    while ((dealer = dealers.IterateNext()) != null)
    {
        Console.WriteLine(dealer.TextContent);
    }
}

Utilice el método XPath Document.Evaluate() para seleccionar información específica de los nodos seleccionados en C#

A veces, es posible que necesite obtener detalles particulares de un nodo en lugar de contenidos completos. Puede seguir los pasos a continuación para usar la consulta XPath para obtener información específica de los nodos seleccionados.

  1. Acceda al archivo XML de entrada usando la clase HTMLDocument.
  2. Invoque el método Evaluate para obtener los nodos que coincidan con la expresión XPath.
  3. Recorra los nodos coincidentes e imprima el contenido específico de cada nodo.

El siguiente ejemplo de código explica cómo seleccionar información específica de un nodo seleccionado en XML usando el método XPath Document.Evaluate:

// Crear una instancia de un documento
using (var doc = new Aspose.Html.HTMLDocument(Path.Combine(dataDir, "cars.xml")))
{
    // Seleccionar distribuidores que coincidan con la expresión 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;

    // Iterar sobre los distribuidores seleccionados
    while ((dealer = dealers.IterateNext()) != null)
    {
        // Obtenga e imprima el nombre y el teléfono del distribuidor
        var dealerInfo = doc.Evaluate("concat('Dealer name: ', Name, ' Telephone: ', Telephone)", dealer, doc.CreateNSResolver(doc), XPathResultType.String, null);
        Console.WriteLine(dealerInfo.StringValue);

        // Seleccione e imprima CarID que coincida con la expresión 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);
        }
    }
}

Use XPath para seleccionar nodos en C# - Leer más

Puede conocer más detalles sobre cómo trabajar con XPath Query visitando los siguientes temas en la sección documentación.

Consulta XPath para seleccionar nodos de HTML o XML en C# - Licencia de evaluación gratuita

Puede probar las funciones de la API en toda su capacidad, sin ninguna limitación, solicitando una licencia temporal gratuita.

Conclusión

En este artículo, aprendió a usar el método XPath Query Document.Evaluate para seleccionar nodos específicos o contenidos particulares de los nodos seleccionados que coincidan con la expresión XPath. Considerando que, en caso de que desee analizar alguna de sus inquietudes, comuníquese con nosotros en foro de soporte gratuito.

Ver también

Usar selectores CSS en HTML usando C#