HTML列出使用XMLWorker [英] HTML to List using XMLWorker
本文介绍了HTML列出使用XMLWorker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能有人请提供解析HTML到iTextSharp的(C#)使用XMLWorkerHelper元素列表的一个例子。
作为文档中给出的JAVA版本是:
XMLWorkerHelper.getInstance()。parseXHtml(新ElementHandler(){
公共无效添加(最终可写W){ 如果(W的instanceof WritableElement){
清单<组件>元素=((WritableElement)w)的.elements();
//元素写的类名到文件
}
} },HTMLParsingToList.class.getResourceAsStream(/ HTML / walden.html));
解决方案
您需要实现一类自己的 IElementHandler
接口:
公共类SampleHandler:IElementHandler {
//元素的泛型列表
公开名单< IElement>元素=新的List< IElement>();
//所提供的项目添加到列表
公共无效添加(IWritable W){
如果(w是WritableElement){
elements.AddRange(((WritableElement)w)的.Elements());
}
}
}
而不是使用文件流的下面是一个示例解析字符串。要使用文件替换 StringReader
与的StreamReader
。
字符串的html =&LT; HTML&GT;&LT; HEAD&GT;&LT;标题&GT;测试文档&LT; /标题&GT;&LT; /头&GT;&LT;身体GT;&LT; P&gt;这是一个。测试&LT;强&GT;大胆&LT; EM&gt;和italic</em></strong></p><ol><li>Dog</li><li>Cat</li></ol></body></html>\";
//实例我们的处理
VAR MH =新SampleHandler();
//绑定读者我们的文字
使用(TextReader的SR =新StringReader(HTML)){
//解析
。XMLWorkerHelper.GetInstance()ParseXHtml(MH,SR);
} //循环遍历每个元素
的foreach(在mh.elements VAR元素){
//循环中的每个元素每个块
的foreach(在element.Chunks VAR块){
//做一点事
}
}
Could somebody please provide an example of parsing HTML into a list of elements using XMLWorkerHelper in iTextSharp (C#).
The JAVA version as given in the documentation is:
XMLWorkerHelper.getInstance().parseXHtml(new ElementHandler() {
public void add(final Writable w) {
if (w instanceof WritableElement) {
List<Element> elements = ((WritableElement)w).elements();
// write class names of elements to file
}
}
}, HTMLParsingToList.class.getResourceAsStream("/html/walden.html"));
解决方案
You need to implement the IElementHandler
interface in a class of your own:
public class SampleHandler : IElementHandler {
//Generic list of elements
public List<IElement> elements = new List<IElement>();
//Add the supplied item to the list
public void Add(IWritable w) {
if (w is WritableElement) {
elements.AddRange(((WritableElement)w).Elements());
}
}
}
Instead of using the file stream here's an example parsing a string. To use a file replace the StringReader
with a StreamReader
.
string html = "<html><head><title>Test Document</title></head><body><p>This is a test. <strong>Bold <em>and italic</em></strong></p><ol><li>Dog</li><li>Cat</li></ol></body></html>";
//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
}
}
这篇关于HTML列出使用XMLWorker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文