michals9 Napisano Grudzień 19, 2009 Zgłoś Share Napisano Grudzień 19, 2009 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Grudzień 19, 2009 Zgłoś Share Napisano Grudzień 19, 2009 To szukaj znacznika ">" od a+1. Nagłówek IndexOf: link Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
michals9 Napisano Grudzień 20, 2009 Autor Zgłoś Share Napisano Grudzień 20, 2009 Użyłem wyrażeń regularnych aby pobrać tagi html i mam obecnie taki łańcuch string: KOD<select name="validMONTH" class="entryField"><option value="01"><option value="02"><option value="03"><option value="04"><option value="05"><option value="06"><option value="07"><option value="08"><option value="09"><option value="10"><option value="11"><option value="12"><select name="validYEAR" class="entryField"><option value="07"><option value="08"><option value="09"><option value="10"><option value="11"><option value="12"><option value="13"><option value="13"><option value="13"><option value="13"><option value="13"><option value="13"><option value="13"><option value="13"><option value="13"><option value="13"><input type="hidden" name="trans_id" value="MDI6P4eMbm1eYYzaXLg478FTixc=" readonly="readonly" /><input name="trans" type="hidden" value="sto" /><input type="hidden" name="extra" value="cacao" > Jeśli chodzi o wyrażenia regularne jestem jednak zielony. Potrzebuję wyrażenia, za pomocą którego mogę pobrać z tego łańcucha wartości właściwości: name, value. Muszę to skończyć do jutra, więc byłbym niezmiernie wdzięczny za jakąś podpowiedz. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.