[GastForen Archiv Perl und CGI Attribute parsen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Attribute parsen

hoernchen
Beiträge gesamt: 28

30. Nov 2004, 14:16
Beitrag # 1 von 16
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo! wie bekomme ich die Attribute geparst?
<?xml version="1.0"?>
<!DOCTYPE eSummaryResult PUBLIC "-//NLM//DTD eSummaryResult, 11 May 2002//EN" "http://www.ncbi.nlm.nih.gov/...mary_041029.dtd">
<eSummaryResult>
<DocSum>
<Id>11848</Id>
<Item Name="Name" Type="String">Rhoa</Item>
<Item Name="Description" Type="String">ras homolog gene family, member A</Item>
<Item Name="Orgname" Type="String">Mus musculus</Item>
<Item Name="OtherDesignations" Type="String">Rho family GTPase|aplysia ras-related homolog A|aplysia ras-related homolog A1|aplysia ras-related homolog A2|ras homolog A1|ras homolog A2|ras homolog gene family, member A1|ras homolog gene family, member A2</Item>
</DocSum>


folgendes skript funktioniert nicht!was mache ich falsch???
#!/xprog/bin/perl -w
use LWP::Simple;
use XML::DOM;

sub XML_einlesen
{

my $url='http://eutils.ncbi.nlm.nih.gov/.../esummary.fcgi?db=';
my ($datenbank,$id1)=@_;
my $url2='&id=';
my $url4='&retmode=xml';
return $url.$datenbank.$url2.$id1.$url4;

}
sub main
{
my $doc;
my $datenverarbeiten;
$datenverarbeiten=&XML_einlesen("gene",11848);
$doc = get$datenverarbeiten;
processXML($doc);
}
sub processXML
{
my $xmldoc = $_[0];
my $parser = new XML::DOM::Parser;
my $doc = $parser->parse($xmldoc);
my $nodes = $doc->getElementsByTagName("eSummaryResult");
for (my $i=0; $i<$nodes->getLength(); $i++)

{
my $node = $nodes->item($i);

if ($node->getAttribute("Name"))
{
print processNode($node->item($i));
}
print "\n";
}
$doc->dispose;
}
sub processNode
{
my $nodes = $_[0]->getChildNodes();
my $text;
for (my $i=0; $i<$nodes->getLength();$i++ )
{
my $node = $nodes->item($i);
if ($node->getNodeType() ==XML::DOM::Node::ELEMENT_NODE())
{

$text .= $node->getFirstChild()->getNodeValue()
}
else
{
$text .= $node->getNodeValue()
}
}
return $text;
}
main();
X

Attribute parsen

SabineP
Beiträge gesamt: 7586

30. Nov 2004, 15:08
Beitrag # 2 von 16
Beitrag ID: #127954
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen


als Antwort auf: [#127943]

Attribute parsen

Anonym
Beiträge gesamt: 22827

30. Nov 2004, 16:45
Beitrag # 3 von 16
Beitrag ID: #127984
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
warum nimmst Du nixht einfach SOAP?

z.B. so:

#!/usr/bin/perl

use SOAP::Lite;

my $res = SOAP::Lite
-> service('http://eutils.ncbi.nlm.nih.gov/...p/v1.1/eutils.wsdl')
-> run_eSummary(\SOAP::Data->value(
#Parameter
SOAP::Data->name("db" => 'gene'),
SOAP::Data->name("id" => '11848'),
###
));

# Ergebnisausgabe
if (ref $res){
for (keys %{$res}) {
print $_, ':', $res->{$_}, "\n";
}
}
else{
print $res;
}


oe


als Antwort auf: [#127943]

Attribute parsen

SabineP
Beiträge gesamt: 7586

30. Nov 2004, 21:02
Beitrag # 4 von 16
Beitrag ID: #128055
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Und damit es schneller geht:

Mit

stubmaker http://eutils.ncbi.nlm.nih.gov/...oap/v1.1/eutils.wsdl

kannst Du Dir noch eine Soap-Schnittstelle erzeugen, in diesem Fall wäre das die Datei

eUtilsService.pm


Das Script für die Ergebnisausgabe müßte dann so aussehen:

#!/usr/bin/perl

use eUtilsService;

my $res = eUtilsService->run_eSummary(\SOAP::Data->value(
#Parameter
SOAP::Data->name("db" => 'gene'),
SOAP::Data->name("id" => '11848'),
###
));

# Ergebnisausgabe
if (ref $res){
for (keys %{$res}) {
print $_, ':', $res->{$_}, "\n";
}
}
else{
print $res;
}

Gruß Sabine


als Antwort auf: [#127943]

Attribute parsen

hoernchen
Beiträge gesamt: 28

1. Dez 2004, 10:29
Beitrag # 5 von 16
Beitrag ID: #128140
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke fuer die ausfuehrliche Antwort!
Ich wuerde es aber schon gerne mit XML::DOM machen!
Nur ich komm einfach nicht dahinter wie ich die Attribute ausgegeben
bekomme!
Gruss Hoernchen


als Antwort auf: [#127943]

Attribute parsen

hoernchen
Beiträge gesamt: 28

1. Dez 2004, 14:44
Beitrag # 6 von 16
Beitrag ID: #128246
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Noch mal Hallo!
Weil ich nicht weiter komme schaue ich mir das Soap dann mal an!
Sieht ja nicht soo viel komplizierter aus!
Naja mal schauen!


als Antwort auf: [#127943]

Attribute parsen

oesi50
  
Beiträge gesamt: 2315

2. Dez 2004, 13:04
Beitrag # 7 von 16
Beitrag ID: #128440
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kleine Anleitung für SOAP

1. Mit dem Kommandozeilentool 'stubmaker' ein Modul erzeugen
stubmaker http://eutils.ncbi.nlm.nih.gov/...ils/soap/eutils.wsdl
hier muss jetzt 'eUtilsService.pm' in deinem Verzeichnis existieren.

2. diese Datei öffnen und die Zeilen
# UNIVERSAL::isa($som => 'SOAP::SOM') ? wantarray ? $som->paramsall : $som->result
# : $som;
auskommentieren
neue Zeile einfügen und $som; hinschreiben.
speichern

3. dieses Script kopieren speichern und starten

#!/usr/bin/perl

use eUtilsService;
#

my @res = eUtilsService->run_eSummary(\SOAP::Data->value(
#Parameter
SOAP::Data->name("db" => 'gene'),
SOAP::Data->name("id" => '11848'),
###
)
)->dataof("//Item");

# Ergebnisausgabe
for my $item(@res){
print $item->attr->{'Name'}, ': ',$item->value, "\n";
}

exit;


4. fertig


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#127943]
(Dieser Beitrag wurde von oesi50 am 2. Dez 2004, 13:05 geändert)

Attribute parsen

hoernchen
Beiträge gesamt: 28

2. Dez 2004, 13:57
Beitrag # 8 von 16
Beitrag ID: #128453
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hey!
Was ist dieses stubmaker,bzw habe ich das automatisch wenn ich das Modul SOAP habe?
Gruss


als Antwort auf: [#127943]

Attribute parsen

oesi50
  
Beiträge gesamt: 2315

2. Dez 2004, 14:27
Beitrag # 9 von 16
Beitrag ID: #128467
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
das ist ein Kommandozeilentool und ja es ist Bestandteil von SOAP::Lite

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#127943]

Attribute parsen

hoernchen
Beiträge gesamt: 28

2. Dez 2004, 14:29
Beitrag # 10 von 16
Beitrag ID: #128469
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke!
Ich werde mich damit beschaefitgen(muessen....)
Mit dem Dom bekomm ich nichts heraus..
gruss


als Antwort auf: [#127943]

Attribute parsen

Anonym
Beiträge gesamt: 22827

11. Jan 2005, 12:57
Beitrag # 11 von 16
Beitrag ID: #135450
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!
Kann mir einer von euch ganz exact erklaeren wie ich den stubmaker oeffne, so eine Datein erstelle und anwende?


als Antwort auf: [#127943]

Attribute parsen

Anonym
Beiträge gesamt: 22827

11. Jan 2005, 13:18
Beitrag # 12 von 16
Beitrag ID: #135458
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Anonym,

das steht schon zwei mal hier in diesem Thread.

Gruß Sabine


als Antwort auf: [#127943]

Attribute parsen

Anonym
Beiträge gesamt: 22827

11. Jan 2005, 14:18
Beitrag # 13 von 16
Beitrag ID: #135476
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich habe eine aehnliche Aufgabe und wollte es nachvollziehen!
Habe das so eingegeben:und die Datei eUtils.pm genannt
Das Skript aus dem Forum kopiert und es kamen Fehlermeldungen heraus!
Stimmt das so?
Ich nenne eine datei eUtil.pm und schreibe die Url mit Stubmaker darein?
Oder wie??

stubmaker http://eutils.ncbi.nlm.nih.gov/...1.1/eUtilsService.pm
# UNIVERSAL::isa($som => 'SOAP::SOM') ? wantarray ? $som->paramsall :
$som->result;
# : $som;
$som;


als Antwort auf: [#127943]

Attribute parsen

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 14:23
Beitrag # 14 von 16
Beitrag ID: #135480
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi anonym und anonym,

welche Fehlermeldung kommt denn da?

und was versteht ihr an dem Wort "Kommandozeilentool" nicht?


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#127943]
(Dieser Beitrag wurde von oesi50 am 11. Jan 2005, 14:24 geändert)

Attribute parsen

Anonym
Beiträge gesamt: 22827

11. Jan 2005, 14:29
Beitrag # 15 von 16
Beitrag ID: #135484
Bewertung:
(3824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Bareword found where operator expected at eUtilsService.pm line 1, near "//eutils"
(Missing operator before eutils?)
syntax error at eUtilsService.pm line 1, near "stubmaker http:"
Compilation failed in require at eutil.pl line 3.
BEGIN failed--compilation aborted at eutil.pl line 3.
so sieht die datein eutils.pm aus


stubmaker http://eutils.ncbi.nlm.nih.gov/...1.1/eUtilsService.pm
# UNIVERSAL::isa($som => 'SOAP::SOM') ? wantarray ? $som->paramsall :
$som->result;
# : $som;
$som


als Antwort auf: [#127943]
X