Poslao: 07 Feb 2010 19:10
|
offline
- igorpan
- Super građanin
- Pridružio: 10 Avg 2006
- Poruke: 1009
- Gde živiš: Beograd
|
Pozdrav ljudi. Sa interneta skidam jednu prilično jednostavnu HTML stranicu. Ono što mi sad treba jeste da iz nje izbacim SVE,ali baš SVE osim slova. Uključujući i nove redove i "tab" (uvlačenja) i sve .
Pokušao sam ovako,ali nešto ne funkcioniše,on izbaci većinu stvari,ali neke ostaju.....
private void SetRealmStatus(string text)
{
string tpars = text;
for (int charpos = 0; charpos < tpars.Length; charpos++)
{
if (!Char.IsLetter(tpars,charpos))
{
tpars = tpars.Remove(charpos, 1);
}
}
Cela poenta je da iz:
<div align=center><font color=gray>Magic-WoW Realm Status script</font><br><br></div><div align=center><table align="center" border="0">
<tr>
<td class="td">
<label for="username">
<font color="gray" size="2px">Logon server:</font>
</label>
</td>
<td>
<img src='images/offline.jpg'></td>
</tr>
<tr>
<td class="td">
<label for="password">
<font color="gray" size="2px">MagicWoW Realm:</font>
</label>
</td>
<td>
<img src='images/online.jpg'></td>
</tr>
<tr>
<td class="td">
<label for="password">
<font color="gray" size="2px">Frozen Realm:</font>
</label>
</td>
<td>
<img src='images/online.jpg'>
</td>
</tr>
</table>
</div>
Izvučem za svaku od ove tri stvari "Logon server,Magic realm,Frozen realm" da li je online.
Prava stranica: http://magic-wow.com/forum/rmstatus.php
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 07 Feb 2010 21:03
|
offline
- MSMarkoN
- Ugledni građanin
- Pridružio: 15 Maj 2006
- Poruke: 333
- Gde živiš: Babušnica
|
Davno sam radio sa .net ali zasto ne probas preko provere ASCII koda i tako izbacis sve sto nije u okviru slova (lower, upper)...
|
|
|
|
Poslao: 07 Feb 2010 21:06
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Ne moze da izdvoji tekst iz HTML-a tako. Treba da se uradi HTML parser koji prepoznaje tagove.
To nije nesto preterano tesko, a ima i gotovih parsera na netu.
|
|
|
|
Poslao: 07 Feb 2010 21:24
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
Jel mora da resenje bude u .NET? Pitam posto mi izgleda kao zadatak za neki od alata za obradu teksta. Izvinjavam se za upad.
EDIT: Dok se ja nakanim da odgovorim vidim vec si dobio odgovore.
|
|
|
|
|
Poslao: 07 Feb 2010 23:03
|
offline
- MSMarkoN
- Ugledni građanin
- Pridružio: 15 Maj 2006
- Poruke: 333
- Gde živiš: Babušnica
|
Da radis u PHP-u bilo bi ti mnogo jednostavnije uz pomoc funkcije strip_tags a ovako ce biti veselo. Mozes i ovako da probas: nadjes poziciju '>' i poziciju '<' i uz pomoc niza smestas sve sto se nalazi izmedju, ocistis ukoliko nije slovo (ili broj ako treba) i ides dalje.
Dopuna: a za online/offline trazis '<img' i odatle izvuces status.
|
|
|
|
Poslao: 07 Feb 2010 23:25
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
@MSMarkoN: strip_tags bi mu ocistio veci deo, to je tacno. Jedino sto bi ocistio i <img> tag, u kome se nalazi informacija da li je server online ili ne
Pokusaj sa RegEx-om, mislim da je to najlakse resenje.
|
|
|
|
|
Poslao: 08 Feb 2010 10:01
|
offline
- Pridružio: 25 Maj 2005
- Poruke: 1482
- Gde živiš: Gracanica, Kosovo
|
@igorpan
Verovatno sam te ja pogresno razumeo, ukapirao sam da ti treba da izvadis par stvari iz loga parsirajuci XML. A i vise sam nekako razmisljao u drugom pravcu, mada je ovo moguce izvesti recimo koristeci mawk:
C:\> mawk -F"[><]" 'c&&!--c{if($0~nadji)print l, nadji};NR==1{next}/font color/{c=4;l=$3}' nadji=online proba.html
MagicWoW Realm: online
Frozen Realm: online
C:\> mawk -F"[><]" 'c&&!--c{if($0~nadji)print l, nadji};NR==1{next}/font color/{c=4;l=$3}' nadji=offline proba.html
Logon server: offline
Vazno da si sredio stvar.
|
|
|
|