gpt4 book ai didi

c# - 使用 XMLWorker 的 HTML 列表

转载 作者:行者123 更新时间:2023-11-30 15:35:07 25 4
gpt4 key购买 nike

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

文档中给出的 JAVA 版本是:

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"));

最佳答案

您需要在自己的类中实现IElementHandler 接口(interface):

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

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

关于c# - 使用 XMLWorker 的 HTML 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15354005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com