HTML to List使用XMLWorker

有人可以提供一个使用iTextSharp(C#)中的XMLWorkerHelper将HTML解析为元素列表的示例。

文档中给出的JAVA版本是:

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接口:

 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()); } } } 

这里不是使用文件流,而是解析字符串的示例。 要使用文件,请将StreamReader替换为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 } }