2011-06-22 8 views
1

イメージ用にHTMLを解析し、その代替テキストに含まれるテキストを持つ新しいタグに置き換える必要があります。誰かがlinqと標準の両方の使い方でこれを行う方法を示すことができますか?イメージを代替テキストで置き換えてください。html agility pack

ここでは段落を置き換える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(); 

答えて

2
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); 
} 
+0

を動作しませんているものですが、ありがとうございました。ドキュメントを文字列に戻す方法を教えてください。上記のコードを私が持っているもので更新しました。それは動作しません。 –

+0

文書を文字列に保存するための回答を更新します。 –

関連する問題