HTML a la lista usando XMLWorker

¿Podría alguien proporcionar un ejemplo de análisis de HTML en una lista de elementos utilizando XMLWorkerHelper en iTextSharp (C #).

La versión de JAVA como figura en la documentación es:

XMLWorkerHelper.getInstance().parseXHtml(new ElementHandler() { public void add(final Writable w) { if (w instanceof WritableElement) { List elements = ((WritableElement)w).elements(); // write class names of elements to file } } }, HTMLParsingToList.class.getResourceAsStream("/html/walden.html")); 

IElementHandler implementar la interfaz IElementHandler en una clase propia:

 public class SampleHandler : IElementHandler { //Generic list of elements public List elements = new List(); //Add the supplied item to the list public void Add(IWritable w) { if (w is WritableElement) { elements.AddRange(((WritableElement)w).Elements()); } } } 

En lugar de usar la secuencia de archivos, aquí hay un ejemplo para analizar una cadena. Para usar un archivo, reemplace el StringReader con un StreamReader .

  string html = "Test Document

This is a test. Bold and italic

  1. Dog
  2. Cat
"; //Instantiate our handler var mh = new SampleHandler(); //Bind a reader to our text using (TextReader sr = new StringReader(html)) { //Parse XMLWorkerHelper.GetInstance().ParseXHtml(mh, sr); } //Loop through each element foreach (var element in mh.elements) { //Loop through each chunk in each element foreach (var chunk in element.Chunks) { //Do something } }