hilfdirselbst.ch
Facebook Twitter gamper-media
« « 1 2 » »  
hoernchen
Beiträge: 28
30. Nov 2004, 14:16
Beitrag #1 von 16
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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(); Top
 
X
SabineP  M 
Beiträge: 7586
30. Nov 2004, 15:08
Beitrag #2 von 16
Beitrag ID: #127954
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


http://search.cpan.org/...lib/XML/DOM/Attr.pod
als Antwort auf: [#127943] Top
 
Anonym
Beiträge: 22827
30. Nov 2004, 16:45
Beitrag #3 von 16
Beitrag ID: #127984
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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] Top
 
SabineP  M 
Beiträge: 7586
30. Nov 2004, 21:02
Beitrag #4 von 16
Beitrag ID: #128055
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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] Top
 
hoernchen
Beiträge: 28
1. Dez 2004, 10:29
Beitrag #5 von 16
Beitrag ID: #128140
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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] Top
 
hoernchen
Beiträge: 28
1. Dez 2004, 14:44
Beitrag #6 von 16
Beitrag ID: #128246
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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] Top
 
oesi50  A  S
Beiträge: 2315
2. Dez 2004, 13:04
Beitrag #7 von 16
Beitrag ID: #128440
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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)
Top
 
hoernchen
Beiträge: 28
2. Dez 2004, 13:57
Beitrag #8 von 16
Beitrag ID: #128453
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


Hey!
Was ist dieses stubmaker,bzw habe ich das automatisch wenn ich das Modul SOAP habe?
Gruss
als Antwort auf: [#127943] Top
 
oesi50  A  S
Beiträge: 2315
2. Dez 2004, 14:27
Beitrag #9 von 16
Beitrag ID: #128467
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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] Top
 
hoernchen
Beiträge: 28
2. Dez 2004, 14:29
Beitrag #10 von 16
Beitrag ID: #128469
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


Danke!
Ich werde mich damit beschaefitgen(muessen....)
Mit dem Dom bekomm ich nichts heraus..
gruss
als Antwort auf: [#127943] Top
 
Anonym
Beiträge: 22827
11. Jan 2005, 12:57
Beitrag #11 von 16
Beitrag ID: #135450
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


Hallo!
Kann mir einer von euch ganz exact erklaeren wie ich den stubmaker oeffne, so eine Datein erstelle und anwende?
als Antwort auf: [#127943] Top
 
Anonym
Beiträge: 22827
11. Jan 2005, 13:18
Beitrag #12 von 16
Beitrag ID: #135458
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


Hallo Anonym,

das steht schon zwei mal hier in diesem Thread.

Gruß Sabine
als Antwort auf: [#127943] Top
 
Anonym
Beiträge: 22827
11. Jan 2005, 14:18
Beitrag #13 von 16
Beitrag ID: #135476
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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] Top
 
oesi50  A  S
Beiträge: 2315
11. Jan 2005, 14:23
Beitrag #14 von 16
Beitrag ID: #135480
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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)
Top
 
Anonym
Beiträge: 22827
11. Jan 2005, 14:29
Beitrag #15 von 16
Beitrag ID: #135484
Bewertung:
(3304 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Attribute parsen


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] Top
 
« « 1 2 » »  
X