Pregunta

Tengo un conjunto de documentos HTML que tengo que analizar. Ellos están codificados en Latin1Encoded. Estoy usando el paquete HtmlAgiliy para "analizar".

Tengo una consulta XPath (con caracteres suecos) que no puedo ir a trabajar debido a las diferentes codificaciones entre los documentos y la codificación VS almacena la consulta XPath en ??

consulta XPath:

doc.DocumentNode.SelectNodes(@"//h2[text()='Företag']/../div//span[text()='Resultat:']/../div");

La consulta XPath funciona bien en el corrector de ampliación de XPath Firefox.

¿Fue útil?

Solución

Podría dar más ejemplos de código y algún documento XML de entrada? A partir de la información dada escribí un pequeño programa de ejemplo, que simplemente funciona como se esperaba. ¿El siguiente trabajo para usted?

documento muestra:

<?xml version="1.0" encoding="iso-8859-1"?>
<doc>
  <test>Företag</test>
  <test>Hallå</test>
</doc>

C #

using System;
using System.Xml.XPath;

class Program
{
    static void Main(string[] args)
    {
        XPathDocument xpdoc = new XPathDocument(@"sample.xml");
        XPathNavigator nav = xpdoc.CreateNavigator();
        XPathNodeIterator iter = nav.Select("//*[text() = 'Företag']");

        while (iter.MoveNext())
        {
            Console.WriteLine(iter.Current.ToString());
        }
    }
}

Salida

Företag

A partir del código de muestra dado que parece que está utilizando el Microsoft.Windows.Design.Documents.Trees.DocumentNode clase. Sin embargo, la documentación indica que esta clase no está destinado a ser utilizado directamente. ¿Puedo preguntar lo que está tratando de hacer?

Actualización: Podría ser que se enfrentan a un problema con la normalización de espacios en blanco (que puede ser realizado por su FireFox complemento y no en su código). ¿Ha tratado de cambiar su XPath mediante la sustitución de la prueba text() = 'Företag' por normalize-space() = 'Företag' (Sólo para excluir el caso de que no es líder adicional o con espacios en blanco)?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top