2010-03-29 16 views
6

Nie mogę znaleźć żadnych tutoriali na ich stronie. Zastanawiam się, czy mogę użyć Html Agility Pack i użyć go do analizy ciągu?Czy mogę użyć do tego celu Agility Pack Html?

Jak powiedzieć mam

string = "<b>Some code </b> 

mogę użyć agility pakiet aby pozbyć się <b> tagów? Wszystkie przykłady, które widziałem do tej pory, ładują się jak dokumenty HTML.

+0

przykład dodaje ... –

+1

To może być wykonane nawet simlier z HAP, w jednej linii: 'var text = HtmlNode.CreateNode ("Niektóre kod") .InnerText;' – Alex

Odpowiedz

8

Jeśli to html, to tak.

string str = "<b>Some code</b>"; 
// not sure if needed 
string html = string.Format("<html><head></head><body>{0}</body></html>", str); 
HtmlDocument doc = new HtmlDocument(); 
doc.LoadHtml(html); 

// look xpath tutorials for how to select elements 
// select 1st <b> element 
HtmlNode bNode = doc.DocumentNode.SelectSingleNode("b[1]"); 
string boldText = bNode.InnerText; 
+0

Ok to co bym z nim zrobić w jaki sposób zrobić niektóre parsowania? – chobo2

+0

Hmm dzięki, ale skopiowałem i wkleiłem ten kod do aplikacji konsolowej i zaimportowałem zwinność html, ale na linii HtmlNode dostaję wyjątek odwołania zerowego. – chobo2

+0

Może to HtmlNode bNode = doc.DocumentNode.SelectSingleNode ("/ b [1]"); –

2

Nie sądzę, że to naprawdę najlepsze wykorzystanie pakietu HtmlAgilityPack.

Zazwyczaj widzę ludzi, którzy próbują parsować duże ilości html za pomocą wyrażeń regularnych i kieruję ich do HtmlAgilityPack, ale w tym przypadku lepiej użyć wyrażenia regularnego.

Roy Osherove ma blogu opisujący jak można rozebrać wszystkie html z fragmentem:

Nawet jeśli nie uzyskać prawidłowy XPath z próbki Mika Kolari za Byłoby działa tylko w przypadku fragmentu z tagiem <b> i pęknie, jeśli kod się zmieni.

Powiązane problemy