C # HTML analizando usando XPath - espacio de nombres

asp.net-mvc-4 c# html-agility-pack xpath

Pregunta

Estoy tratando de analizar una página HTML usando el paquete de agilidad HTML. Utilicé una extensión de Firefox llamada XPath Checker y estoy bastante seguro de que la expresión es correcta. Sin embargo, cuando ejecuto mi código, .NET me dice que "Namespace Manager o XsltContext es necesario. Esta consulta tiene un prefijo, una variable o una función definida por el usuario".

Eso está bien, excepto que no tengo idea de dónde obtener Xslt o dicho espacio de nombres. ¿Cómo puedo averiguar qué espacio de nombres necesito?

Para referencia, este es mi código (yo uso MVC4):

List<Post> posts = new List<Post>();
            // Use this to count how many nodes to get
            int postNodesAmount = doc.DocumentNode.SelectNodes("//div[@class=\"post_block no_sidebar\" ]").Count;            

            for (int i = 1; i <= postNodesAmount; i++)
            {
                Post newPost = new Post();
                string newContent = doc.DocumentNode.SelectSingleNode("id('pane_forums:posts')/x:div/x:div[" + i + "]/x:div/x:div/x:div/x:p[1]").InnerText;
                newPost.Content = newContent;
                posts.Add(newPost);
            }

            return View(posts);

Respuesta aceptada

La implementación del Html Agility Pack XPATH simplemente no admite consultas que involucren espacios de nombres.

La biblioteca es de código abierto, por lo que se puede cambiar, pero esto necesita un montón de reescrituras para agregar esta función.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué