Forum Programowanie c++, delphi

C# Parsowanie html
michals9 - 19-12-2009 o godz. 20:58

Mam pewien problem.
Chciałbym zrobić parsowanie formularzy zawartych w pliku html bez użycia wyrażeń regularnych.
Chodzi mi o uzyskanie zmiennej string, zawierającej <input... />, oraz <select></select> wraz z zawartością.
Z selectami udało mi się to, mam natomiast problem z inputami.
Najpierw pobieram do zmiennej formy wszystkie formularze. Potem zaś:

Kod:
do
{
a = formy.IndexOf("<input");
b = formy.IndexOf("/>");
if ((b + 9) < a)
{
MessageBox.Show("Błąd");
goto Koniec;
}
else
{
input = input + formy.Substring(a, ((b + 2) - a));
formy = formy.Remove(0, (b + 2)); // Ponieważ przeszukiwanie zmiennej formy
// przebiega od jej początku za każdym razem
// usuwany jest tekst, który został dodany
// do input
}

} while (formy1.Contains("<input"));


input to zmienna string zawierająca tekst po parsowaniu.
Problem polega na tym, że w pliku znajdują się również znaczniki <input... >(zamknięte bez prawego ukośnika).

Funkcja IndexOf() jakby ich nie widziała, poza tym ich obecność powoduje że zmienna b bywa mniejsza od zmiennej a.

To z kolei powoduje wywołanie funkcji Substring() z długością łańcucha mniejszą od zera.
Byćmoże są w Visual C# 2008 Express Edition funkcje wspomagające parsowanie html, ale za krótko w tym siedzę żeby o

tym wiedzieć.

Pomóżcie jak możecie :(