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ś:
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 :(