質問: ちょっと、私は自分のコードベースのすべてのリンクをトラバースし、ローカライゼーションの理由から``から`` ``変更しています。私はHTMLAgilityPackを使用しています(そして他のもの)、私はリンクを探してOuterHtmlオブジェクトを変更したいのですが、それは読み取り専用です。 私はHAPには新しく、新しいノードを作成して古いノードを削除する必要がありますか?誰もこれにぶつかるのですか? ありがとう!
回答: 文書全体を文字列として扱う場合、なぜHTMLアジャイルパックを使用するのですか?タグを検索して置き換え、文書を書き戻します。 ``` var doc = new HtmlDocument(); doc.LoadHtml(yourString); // or doc.Load(yourStream); var links = doc.DocumentNode.Descendants("a"); foreach (var link in links) { link.Parent.Replace(ConvertLink(link), link); } string newDocument = doc.DocumentNode.OuterHtml; // Or doc.Save(); ``` `ConvertLink`は次のようになります。 ``` public HtmlNode ConvertLink(HtmlNode aTag) { var link = HtmlNode.Create("asp:HyperLink"); link.Attributes.Add(...); return link; } ``` (コンパイルされていないので、微調整が必要な場合があります)。