xml string zerlegen
jac
- perl
hi
ich habe einen xml-string der ungefähr so aussieht:
<?xml version="1.0"?>^<!DOCTYPE service SYSTEM "service.dtd">^<service id="15645">^<phonenumber>+41783020464</phonenumber>^<servicenumber>8423</servicenumber>^<parameters>^<parameter id="1">^<name>keyword</name>^<value>LOGO board3</value>^</parameter>^</parameters>^</service>^
davon brauche ich den inhalt von phonenumber (also +41783020464) und die servicenumber (also 8423) und den value (also "LOGO board3").
wie mache ich das am besten??
thx mfg
wie mache ich das am besten??
Hallo jac,
kommt wohl drauf an, was man als "bestes" versteht. Schön wäre ein XML-Parser. Aber wenn es nur die Telefonnummer sein soll, reicht wahrscheinlich ein regulärer Ausdruck:
$str =~ s/<phonenumber>([^<]*)</phonenumber>/$1/i;
Viele Grüße
Joachim
$str =~ s/<phonenumber>([^<]*)</phonenumber>/$1/i;
danke erstmal!!
also wenn ich das so mache, dann sollte doch die telnr aussgegeben werden? tuts aber nicht... was mach ich falsch?
thx mfg
#!/usr/local/bin/perl -w
use strict;
$str = "<phonenumber>+41796724144</phonenumber>";
$str =~ s/<phonenumber>([^<]*)</phonenumber>/$1/i;
print $str;
also wenn ich das so mache, dann sollte doch die telnr aussgegeben werden? tuts aber nicht... was mach ich falsch?
Im strict-mode müssen Variablen in Perl deklariert werden, d.h. Du solltest einfach eine Zeile "my $str;" ergänzen (vor der ersten Verwendung von $str), dann klappt's auch.
Viele Grüße
Joachim
Im strict-mode müssen Variablen in Perl deklariert werden, d.h. Du solltest einfach eine Zeile "my $str;" ergänzen (vor der ersten Verwendung von $str), dann klappt's auch.
Viele Grüße
Joachim
yep, jetzt funzts!
vielen dank!!
mfg