parser parse htmlagilitypack agility c# html-agility-pack

c# - parse - Alternativas a HtmlAgilityPack?



htmlagilitypack selectnodes (2)

Proyecto iniciado llamado SharpQuery

Actualmente admite los selectores de ID, clase, etiqueta y atributo.

a a[href] a[href^=http://stackoverflow.com] .class #id

Actualización: no estoy manteniendo este proyecto, lo siento. CsQuery tiene actualizaciones recientes (a partir de julio de 2013), pero no tengo ninguna experiencia en su uso.

No me gustan algunas de las decisiones de diseño tomadas en HtmlAgilityPack:

  • Cuando se usan los SelectNodes , si no se encuentran nodos, devuelve un null lugar de un conjunto vacío, por lo que no se puede buscar por encima sin un control nulo.
  • Cuando se intenta seleccionar hijos con node.SelectNodes en realidad busca desde la raíz del documento a menos que use descendant:: que no es un comportamiento obvio ni esperado, IMO.
  • HtmlDocument.Load no devuelve el nodo raíz, que es lo que se desearía el 99% del tiempo, creo

Puede estar en desacuerdo con eso, por supuesto, pero ese no es el punto. Estoy buscando algo diferente . Algo que se comporte un poco más esperado, o algo que use la sintaxis de jQuery sería aún mejor. Sugerencias?


Si solo está analizando el html, otra opción podría ser SgmlReader. Si estás modificando el html, no tanto. No recuerde cómo se comporta con respecto a los problemas que planteó, pero vale la pena echarle un vistazo.