Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Mit PHP Parameter im XML Namespace parsen

Mit PHP Parameter im XML Namespace parsen

pismo14.05.1110:45
Puh - was für ein Titel, auf jeden Fall macht es wohl das folgende Beispiel deutlicher:


Ich habe eine XML-Datei mit den folgenden Infos:

<name>Peter</name>
<category name="Employee" label="Mitarbeiter"/>
<xy:gender>Male</xy:gender>
<xy:website href="http://www.xyz.com/peter">Peter's Homepage</xy:website>

Ich parse in den ersten drei Fällen:

001 $data01 = $xml->item;
002 $name = $data01[0]->name;
003 $category_name = $data01[0]->category['name'];
004 $gender = $data01[0]->children(xy, true)->gender;

Doch wie kann ich nun den Link aus der xy:website auslesen, denn wenn ich wie bei 004 parse, gibt er mir nur "Peter's Homepage" aus, nicht aber den Link.

Das Folgende habe ich versucht, leider erfolglos:
001 $weblink = $data01[0]->children(xy, true)->website['href'];

Wäre echt nett wenn sich hier jemand meiner annehmen würde!
0

Kommentare

pismo14.05.1118:12
sorry, shameless self-bump

Kann wirklich niemand helfen?
0
micheee15.05.1119:56
Hi pismo,
Ich nehme an du verwendest php's simplexml.

Hast du denn den Namespace xy irgendwo definiert?
Falls ja kannst du auf die Elemente zugreifen wie hier beschrieben

Falls nicht, ist die Lösung nicht mehr ganz so simpel, aber hier skizziert


Von der Idee her ist es folgendes:
* Du registrierst den Namespace beim Parser (Zeile 13)
* Du führst eine XPath Anfrage auf den /emp/website/ Pfad aus und speicherst das Ergebnis in $web (Zeile 14)
* Da der Namespace jetzt registriert ist, werden auch die Attribute mit Namespace in die Objektstruktur geparst

Um das Beispiel lauffähig zu machen hab ich dein Fragment in ein <emp /> Element verpackt

Hoffe das hilft.
Grüße
0
pismo16.05.1100:24
micheee

Hoffe das hilft.

Hi micheee,

ich danke dir für deine Hilfe und dass du dir die Mühe gemacht hast alles auch noch in github zu schreiben! Ich habe kurz drüber geschaut und einen ersten Test gemacht, funktioniert tadellos. Ich werde morgen weiter machen un berichten. Aber echt ganz große Klasse, danke!

Informatikstudent?

Gruss, pismo
0
micheee16.05.1112:38
Hi pismo, ja aber ziemlich am Ende des Studiums, die Master Arbeit muss noch geschrieben werden

Momentan entwickle ich an basex.org - einer XML Datenbank mit, deswegen hab ich die XML Frage auch gerne beantwortet
(Damit kannst du XPath oder XQuery Anfragen auch auf XML Instanzen mit mehreren GB Größe recht performant beantworten)

Grüße
Michi
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.