2011-12-01 24 views
16

Çok sayıda HTML öğesi kodunu çözecek bazı işlevler arıyorum.Tüm HTML Öğelerini Çözme

Sebep HTML içeriği almak için bazı kod üzerinde çalışan ve düz metin dönüştürerek am, ben var konu varlıkların çok değil olsun HttpUtility.HtmlDecode kullanılarak dönüştürülür yapmak olduğunu.

Ben & nbsp ;, & amp ;, & kopya vardır endişeleniyorum varlıklar bazı örnekler ;.

Bu, . Net 3.5 içindir. Ben bir konsol uygulaması çalıştırmak Örneğin

Net 4 dahil

+0

I 3.5 ve ikinci 'Console.WriteLine (HttpUtility.HtmlDecode (" , &, ©")), .NET geçer; 've benim için çalıştı. Neden sorun yaşadığını anlayamıyorum. Tuhaf bir kod diziniz var mı? –

cevap

19

olsun. HtmlDecode ?. Çalışır, sadece System.Web'e bir başvuru eklemeniz gerekir.

MessageBox.Show(HttpUtility.HtmlDecode("&©")); 

çalıştı ve çıkış olarak beklenen (ve işareti ve telif hakkı sembolü) idi: En azından bu .Net Framework < 4.

Örneğin aşağıdaki kodda yoluydu. Sorunun HtmlDecode içinde olduğundan ve başka bir şey olmadığından emin misiniz?

UPDATE: İşi yapabilen başka bir sınıf olan WebUtility (daha sonra HtmlDecode yöntemi) .Net'in daha yeni sürümlerinde geldi. Ancak, bununla ilgili bazı problemler var gibi görünüyor. HttpUtility vs. WebUtility sorusuna bakın.

+0

Doğru, sonuç nasıl kullanıyordum, bir asp: etiketine koyarsam, copywrite karakterini ©'a dönüştürürdü. – Matthew

+0

Anladım. Bu bilmek oldukça yararlıdır :). –

20

Kullanım WebUtility.HtmlDecode:

Console.WriteLine(WebUtility.HtmlDecode("&nbsp;, &amp;, &copy;")); 

Ben O zaman belki HttpUtility gerekecektir , &, c

+1

Muhtemelen bunun .net 3.5 için olduğunu söylemeliydim. Olsa ben de seni. Yine de teşekkürler. – Matthew

+0

WebUtility ve HttpUtility'nin 'HtmlDecode' yöntemi arasındaki fark nedir? – crush

+0

Burada bir cevap var: Kısacası http://stackoverflow.com/questions/17352981/webutility-htmldecode-vs-httputilty-htmldecode - HttpUtility tüm kullanılan eski bir (iken WebUtility WinRT ile geldi, bu yeni değil Yerde kalmak için bekliyorum). Ayrıca WebUtility System.dll (System.Net) içinde olduğunu düşünüyorum, bu da doğru hatırlıyorsam WinApps için biraz daha erişilebilir (System.Web'e bağlı olmak zorunda değilsiniz). –

İlgili konular