2011-07-27 20 views
7

HTML Çeviklik Paketi ile ilgili yardıma ihtiyacınız var!İç Metin Ekleme HTML BODY düğümünde Html Agility Pack

Temel olarak, HTML'nin gövde düğümüyle düz metin kapmak istiyorum. Şimdiye kadar bunu denedim. Bm.net ve anlamındaki iç metinleri döndüremediğimizde, görebildiğim kadar iyi bir değişim görülmüyor. hala şans

Return htmldoc.DocumentNode.InnerText 

Ama:

Dim htmldoc As HtmlDocument = New HtmlDocument 
htmldoc.LoadHtml(html) 

Dim paragraph As HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("//body") 

If Not htmldoc Is Nothing Then 
    For Each node In paragraph 
     node.ParentNode.RemoveChild(node, True) 
    Next 
End If 

Return htmldoc.DocumentNode.WriteContentTo 

Bunu denedim!

Herhangi bir tavsiye ???

+1

[Html çeviklik Paketi ile html den tut tüm metin] (olası yinelenen http://stackoverflow.com/questions/4182594/grab-all-text-from-html- with-html-çeviklik-paketi) – richard

cevap

13

ne dersiniz:

Return htmldoc.DocumentNode.SelectSingleNode("//body").InnerText 
+0

Merhaba Jeff, daha önce de denedim ama döndürülen veri &, {,} ve birçok html taging ve ayrıca betik etiketleri gibi istenmeyen karakterler bir sürü içerir. Satır aralığı pencerenin hemen dışında. Belki bunu düzeltmek için regex kullanabilirim. Ama ben daha çok Html Çeviklik Paketi – Kevin

+0

üzerinde yoğunlaşmak istiyorum. Bunun için, istenmeyen şeylerin html'sini temizlemek dışında yapabileceğiniz pek bir şey yok. InnerText, belgede gördüğünüz öğenin parçası olmayan her şeyi içerir. Yani, boşluk, kod düğümlerinde kod vb. Içerir. Amacınız metni bir web tarayıcısında göründüğü gibi almaksa, bunu bu şekilde almayacaksınız. –

+0

Hmm Ne demek istediğini anlıyorum. Belki iç metin ve düz metin ile karışmış. Ana amaç, temiz metni geri almak veya HTML'yi ana metin içeriğiyle geri ayrıştırmaktır. Bunun nasıl yapılacağını bana gösterir misin lütfen. – Kevin