Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.08.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
Byla vydána nová verze 2.51.0 distribuovaného systému správy verzí Git. Přispělo 91 vývojářů, z toho 21 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Po roce bylo vydáno nové číslo magazínu Phrack: Phrack 72.
OpenSSL Corporation zve na den otevřených dveří ve středu 20. srpna v Brně a konferenci OpenSSL od 7. do 9. října v Praze.
Konference LinuxDays 2025 proběhne o víkendu 4. a 5. října v Praze. Konference OpenAlt 2025 o víkendu 1. a 2. listopadu v Brně. Blíží se konec přihlašování přednášek. Přihlaste svou přednášku (LinuxDays do 31. srpna a OpenAlt do 3. října) nebo doporučte konference známým.
Raspberry Pi Touch Display 2 je nově vedle 7palcové k dispozici také v 5palcové variantě. Rozlišení stejné 720 × 1280 pixelů. Cena 40 dolarů.
Telnet a ssh klient PuTTY postupně přechází na novou doménu putty.software.
Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.
Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních
… více »Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.
while ($xmlretezec =~ /(<NewsItem>[\s\S]+<\/NewsItem>)/g) {
$counter++;
$pole[$counter] = $1;
};
<NewsItem>....</NewsItem><NewsItem>+++++</NewsItem>
</NewsItem>
nechat probehnout cyklus a pak pokracovat, kde skoncil - tj za prvnim vyskytem </NewsItem>
a to opakovat az do konce souboru...
Predem diky za jakkoukoliv reakci, je mi jasny ze zrejme nechapu jak to funguje :-/
soubor.xml
třeba tento obsah
<xml> <NewsItem>prvni</NewsItem> <NewsItem>druhy</NewsItem> <NewsItem>treti</NewsItem> </xml>pak by se dal parsovat třeba tímto
#!/usr/bin/env python from elementtree.ElementTree import * root = ElementTree(file='soubor.xml') for news in root.getroot(): print news.texta výsledek by byl
prvni druhy tretiKdybys podrobněji popsal strukturu tvého xml souboru, dalo by se to napsat přímo na míru.
while($xmlretezec =~ s#(<NewsItem>[\s\S]+</NewsItem>)##) { $counter++; $pole[$counter] = $1; }nebo pokud se zbavím citové vazby na cyklus while
for($counter=0;$xmlretezec =~ s#<NewsItem>[\s\S]+</NewsItem>##;$counter++) { $pole[$counter] = $1; }což je mnohem lepší řešení, protože má o jeden řádek méně :))) (vtip)
Musim vas zklamat, ale nemate pravdu. Problem je v defaultni zravosti regexpu. Pokud tuto neomezite, coz jste neudelal, tak kod fungovat nebude. Navic jste v prikladu s cyklem for opomenul rici PERLu aby si nalezenou shodu zapamatoval. Nasledujici kod by uz mel fungovat, ma vsak jednu vlastnost ktera vy se nemusela byt zcela zadouci a to, ze modifikuje puvodni text v promenne $xmlretezec - vsechny nalezene shody proste z puvodniho textu vyrizne...
for($counter=0;$xmlretezec =~ s#(<NewsItem>[\s\S]+?</NewsItem>)##;$counter++) { $pole[$counter] = $1; }
Problem tkvi v tom, ze regularni vyrazy v PERL jsou zrave a snazi se najit co nejdelsi shodu, takze pro takto zadany regexp vezmou prvni znacku <NewsItem> a pak vsechno az po posledni znacku </NewsItem> kterou v promenne $xmlretezec najde. Staci omezit tuto defaultni zravost perlu pridanim '?' za '+' a kod se bude chovat tak jak ocekavate.
while ($xmlretezec =~ /(<NewsItem>[\s\S]+?<\/NewsItem>)/g) { $counter++; $pole[$counter] = $1; }
A pokud to ma jen prijit na konec nejakeho pole, tak to jde i takto
push @pole, $xmlretezec =~ /(<NewsItem>[\s\S]+?<\/NewsItem>)/g;
modifikátor:
s
Treat string as single line. That is, change ``.'' to match any character whatsoever, even a newline, which it normally would not match.
výsledok:
while ($xmlretezec =~ /\G.*?(<NewsItem>.+?<\/NewsItem>)/gs) { push @pole, $1; };
while ($xmlretezec =~ /(<NewsItem>.+?<\/NewsItem>)/gs) { push @pole, $1; };Viz:
$ perl -le '$/=undef;$a=<>;while($a=~/(<NewsItem>.+?<\/NewsItem>)/gs){print $1}' <<EOF <xml> <NewsItem>pr vni</NewsItem> <NewsItem>druhy</NewsItem> <NewsItem>tr et i</NewsItem> </xml> EOF
while ($xmlretezec =~ /(<NewsItem>(.+?)<\/NewsItem>)/gs) { push @pole, $1 if $2; };
.*?
, keď element obsahuje text s dĺžkou 0.
python << EOF from elementtree.ElementTree import * xml = ''' <xml> <NewsItem attr='bleble'>prvni</NewsItem> <NewsItem >dr uhy<tento_tag_nechci>ignoruj</tento_tag_nechci></NewsItem> <NewsItem>treti</NewsItem> </xml> ''' elem = fromstring(xml) pole = [news.text for news in elem.getiterator('NewsItem')] print pole EOFUvádím výsledek pro ty, kterým je proti srsti vzít do myši úplně cizí kód a strčit si ho do terminálu
['prvni', 'dr\n uhy', 'treti']
['prvni', 'dr\n <tento_tag_nechci>ignoruj</tento_tag_nechci>uhy', 'treti']keď už
python << EOF from elementtree.ElementTree import * import re xml = ''' <xml> <NewsItem attr='bleble'>prvni</NewsItem> <NewsItem >dr uhy<tento_tag_nechci>ignoruj</tento_tag_nechci></NewsItem> <NewsItem>treti</NewsItem> </xml> ''' elem = fromstring(xml) for e in elem.getiterator(): print (e.tag, e.text) EOFVýsledek:
('xml', '\n ') ('NewsItem', 'prvni') ('NewsItem', 'dr\n uhy') ('tento_tag_nechci', 'ignoruj') ('NewsItem', 'treti')
že se ptal na implementaci v perlu což výslovně uvedl v přímo v titulku dotazu.To že J.M. neustále u všech hledaných řešení doplňuje i o svoje řešení v Pythonu, to vidím jako plus a vůbec bych ho od toho neodrazoval. Jestli dotazující řešení v Pythonu nepoužije, nevadí (může to mlčky přehlédnout). Ale pro ostatní "přihlížející" návštěvníky to může být zajímavá ukázka a alternativa, jak to lze řešit i jinak. Takže jen tak dál, i když je požadavek třeba na Perl, proč si neprohlédnout i jiná řešení ...
<NewsItem><b>Category:</b> <i>title</i></NewsItem>a podobne, ako príklad to snáď postačuje
Tiskni
Sdílej: