我需要解析圖像的HTML並用新標籤替換這些標籤,該標籤只包含備用文件中包含的文本。有人可以用linq和標準用法來展示如何做到這一點嗎?
我現在使用linq樣本來替換段落。但是,我得到一個只讀錯誤。
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
IEnumerable<HtmlNode> paragraphs = doc.DocumentNode.DescendantNodes().Where(p => p.Name.ToLower() == "p");
foreach (HtmlNode p in paragraphs)
{
p.InnerText = "Hello World";
}
還有一種簡單的方法可以將其轉回文本嗎?即輸出為字符串
這就是我所擁有的不起作用
MemoryStream outStream = new MemoryStream();
doc.Save(outStream);
outStream.Seek(0, SeekOrigin.Begin);
StreamReader reader = new StreamReader( outStream );
string text = reader.ReadToEnd();
var images = doc.DocumentNode.SelectNodes("//img");
if (images != null)
{
foreach (HtmlNode image in images)
{
var alt = image.GetAttributeValue("alt", "");
var nodeForReplace = HtmlTextNode.CreateNode(alt);
image.ParentNode.ReplaceChild(nodeForReplace, image);
}
}
var sb = new StringBuilder();
using (var writer = new StringWriter(sb))
{
doc.Save(writer);
}