Kezdőoldal » Számítástechnika » Programozás » Perlben szeretnék egy html-ből...

Perlben szeretnék egy html-ből kicsípni sok hasonló adatot, és azt elmenteni egy array-be. Hogyan kéne mindezt? ->>

Figyelt kérdés

Azt kéne megoldani, hogy a html forrásból kiszedni a dátumokat, amik ilyen formában vannak:

<SELECT NAME="date">

...

<option value="2010-10-13">1</option>

<option value="2010-10-14">2</option>

<option value="2010-10-15">3</option>

<option value="2010-10-16">4</option>

...


</SELECT>

és ebből az option-ből rengeteg, viszont van olyan dátum, ami hiányzik.

Hogy tudnám akár ciklussal, akár anélkül megírni, hogy minden egyes dátumot (elég ha csak stringként) elment egy array egy elemébe?


2010. dec. 14. 23:42
 1/8 anonim ***** válasza:
Mintaillesztéssel. Végigmész a sorokon, és kiszeded, keress rá, vannak nagyon jó példák rá, ne nekem kelljen a szádba rágni.
2010. dec. 15. 09:57
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
Az egy dolog, a regex megvan, csak arra volnék kíváncsi, hogy azt hogy definiálom, hogy a <SELECT NAME="date">-től indul, soronként halad, és megy tovább lefelé és </SELECT>-tel végez
2010. dec. 15. 15:48
 3/8 ejbenjaro ***** válasza:

Én mondjuk ebben az irányban indulnék el a helyedben:

[link]

[link]

[link]

2010. dec. 15. 22:18
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
Miért kéne onnan indulnia? Select tagen kívül is szerepel option value? Mert ha igen, akkor nagyon egyszerű, illesztesz először a select value-ra, és ha találat van, akkor onnantól illesztesz az option value-ra, egészen addig, amíg a /selectre nem illik ;) ciklus a ciklusban.
2010. dec. 15. 23:25
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:
Nincs select-en kívül option, ezért gondoltam rá, hogy a kettő között keressen. Valami olyasmire gondoltam, hogy ugye megy soronként, és az is elég, ha az első option-tól halad, és ott áll meg, ahol nincs több option, ugyanis csak ez az egy select van az egész oldalon :D Csak megvalósítani, hmm, az már nem megy... Azért köszi, majd ha lesz kicsit több szabadidőm próbálkozom :D
2010. dec. 16. 00:17
 6/8 anonim ***** válasza:
Ezesetben ha nem egy sokmegás html fájlod van, akkor felesleges szőrözni meg spórolni. Csapasd végig az egész fájlon, és amelyik sorra illik az "option value", az lesz a tied.
2010. dec. 16. 20:16
Hasznos számodra ez a válasz?
 7/8 A kérdező kommentje:
Esetleg a kódot nem írnátok meg helyettem? :D Az lenne a leghasznosabb :P
2010. dec. 16. 22:48
 8/8 anonim válasza:

Itt tudod letölteni: [link]


A kód:


#!/usr/bin/perl


# (c) Doncike 2011

# Csak, mert jo napom van.


use strict;

use warnings;


my $html = '

<SELECT NAME="date">

<option value="2010-10-13">1</option>

<option value="2010-10-14">2</option>

<option value="2010-10-15">3</option>

<option value="2010-10-16">4</option>

</SELECT>

';


my @minden_sor = split(/\<\/option\>/,$html);

my @datumok = ();


foreach my $egy_sor (@minden_sor){

if ($egy_sor =~ /(\d{4}-\d{2}-\d{2})/){

unshift (@datumok, $1);

}

}


foreach my $datum (@datumok){

print "$datum\n";

}

2011. ápr. 20. 12:15
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!