Schrift
[thread]8567[/thread]

wie durchsuche ich einen text

Leser: 1


<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
fraggs
 2006-12-08 16:06
#72402 #72402
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
wie der titel schon sagt. da ich jetzt meine xml per open auf habe will ich die durchsuchen und dann die zwei daten rausziehen ...

die xml sieht so aus wenn sie geoefftnet wird
Quote
<?xml version="1.0" encoding="UTF-8"?><!-- EMMA v2.0.5312 report, generated Wed Nov 01 16:14:54 CET 2006 -->

<report>
<stats>
<packages value="5"/>
<classes value="80"/>
<methods value="589"/>
<srcfiles value="57"/>
<srclines value="3469"/>
</stats>
<data>
<all name="all classes">
<coverage type="class, %" value="96% (77/80)"/>
<coverage type="method, %" value="66% (391/589)"/>
<coverage type="block, %" value="70% (11659/16578)"/>
<coverage type="line, %" value="70% (2421.3/3469)"/>


die regex die renee mir mal vor nem monat zusammen gestellt hat habe ich versucht darauf anzupassen doch irgendwie habe ich nur noch mehr errors bekommen.

die daten die ich aus dem all name rausziehen will sind
block value = zahl% (zahl/zahl)
line value= zahl% (zahl/zahl)

mit den regexes bin ich komplett verloren obwohl ich mir die tutorials mehrmals durchgelesen habe. wie ich das nacher anpasse ist mir klar nur das durchsuchen da stehe ich noch im wald

danke
mmm twix
Relais
 2006-12-08 16:32
#72403 #72403
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Magst Du es vielleicht mit CPAN:XML::Simple und dann direktem Zugriff auf die Elemtente probieren?
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
topeg
 2006-12-08 16:48
#72404 #72404
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Suchst du sowas?
Code: (dl )
my ($type, $value1, $value2, $value3)=$xml=~m|<\s*coverage\s+type="(block|line)\s*,\s*\%\s*"\s+value="(\d+)\%\s+\(([\d\.]+)/([\d\.]+)\)"\s*/>|s;
\n\n

<!--EDIT|topeg|1165589357-->
renee
 2006-12-08 16:51
#72405 #72405
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich meine (vielleicht irre ich mich auch), ich hätte Dir in dem anderen Thread auch gesagt, wie man es mit XML::Simple lösen kann (aber ich finde ihn im Moment nicht)...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
fraggs
 2006-12-08 16:56
#72406 #72406
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=renee,08.Dec..2006, 15:51]Ich meine (vielleicht irre ich mich auch), ich hätte Dir in dem anderen Thread auch gesagt, wie man es mit XML::Simple lösen kann (aber ich finde ihn im Moment nicht)...[/quote]
haha das ist mir klar mit dem xml simple aber ich will mal sehen obs auch ohne module geht. deswegen wollte ich die xml auslesen und dann mit ner suche drueber gehen. ich denke topeg hat da was mal schauen.

ich will mal zwei varianten probieren mit und ohne xml::simple
mmm twix
fraggs
 2006-12-08 17:02
#72407 #72407
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=topeg,08.Dec..2006, 15:48]Suchst du sowas?
Code: (dl )
my ($type, $value1, $value2, $value3)=$xml=~m|<\s*coverage\s+type="(block|line)\s*,\s*\%\s*"\s+value="(\d+)\%\s+\(([\d\.]+)/([\d\.]+)\)"\s*/>|s;
[/quote]
schmeist mir einen error wenn ich die values ausgeben lassen will ...

Quote
Unmatched ( in regex; marked by <-- HERE in m/<\s*coverage\s+type="( <-- HERE block/ at z:\tla\Scripts\Emmaparser\emmaparser2.pl line 14.


die values und type sind doch dann block oder line und die 3 zahlen oder ?

die sollten doch einfach via print ausgegeben werden koennen

danke nochmals, hier im betrieb gibts keinen der mir programmieren in PERL bei bringen kann und ich habe nur so 3 monate QBASIC und auf dem taschenrechner programiert :p
mmm twix
renee
 2006-12-08 17:05
#72408 #72408
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du abgetippt oder copy&paste?? Ich kann da auf die Schnelle keinen Fehler finden...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
fraggs
 2006-12-08 17:28
#72409 #72409
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
copy paste ich denke irgendwas stimmt nicht wie ich das aufgebaut habe.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# !perl

use strict;
use warnings;

my $dataxml = 'z:\tla\scripts\emmaparser\index.xml';
my $xmlfile;

open($xmlfile,'<',$dataxml) or die $!;

while(my $line = <$xmlfile>)
{
my ($type, $value1, $value2, $value3)=$line=~m|<\s*coverage\s+type="(block|line)\s*,\s*\%\s*"\s+value="(\d+)\%\s+\(([\d\.]+)/([\d\.]+)\)"\s*/>|s;
}

close ($xmlfile);


ich hab da so ein richer das man die regex nicht unbedingt in die while routine packen kann .... der code oben ist von den anderen threads angesammelt wo ich nach gefragt hatte. xml ist noch so naja etwas fremd vorallem wie das mit dem auslesen geht.

aber alle tips und hilfe machen mich gluecklich
mmm twix
renee
 2006-12-08 19:11
#72410 #72410
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Der RegEx muss
Code: (dl )
my ($type, $value1, $value2, $value3)= $line =~ m!<\s*coverage\s+type="(block|line)\s*,\s*\%\s*"\s+value="(\d+)\%\s+\(([\d\.]+)/([\d\.]+)\)"\s*/>!s;
heißen. Das | ist hier als Trennzeichen ungeeignet, weil es ja im RegEx vorkommt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
topeg
 2006-12-08 21:05
#72411 #72411
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Genau, habe nicht aufgepasst :-)
Mußt "m!...!s;" statt "m|...|s;" machen. sonst stolpert er über das Oder "|".
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2006-12-08 16:06.