Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> XML mit PHP
sd12
Geschrieben am: Mi 19.12.2007, 16:44
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Moderatoren
Beiträge: 3580
Mitglied seit: 3.03.2004


Ich werde noch wahnsinnig...

Ich will dieses XML auslesen:
http://wap.sonyericsson.com/UAProf/M600iR100.xml

insbesondere will ich an den Vendor kommen:
QUOTE
<prf:Vendor>Sony Ericsson Mobile Communications</prf:Vendor>


simplexml_load_file verhedert sich irgendwie im XML... Und funktioniert nicht.

Alle anderen Klassen kapier ich nicht.

Wie komm ich an eine Variable die dann z.B: $vendor heisst?

Danke...


--------------------
************************
Treiber f[r das Kezboard ist [berfl[ssig.
Top
PMEmail PosterICQMSN
Top
 
 
Jörg Kruse
#2 Geschrieben am: Mi 19.12.2007, 19:07 (+02:23)
Report PostQuote Post

AyomRank 5
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 411
Mitglied seit: 19.12.2004


Kann es sein, dass simplexml_load_file() ein Problem mit Namespaces, d.h. dem Doppeldunkt, hat? Ich hatte in einem Script auch das Problem mit simplexml_load_string() und daraufhin den Doppelpunkt durch ein _ ersetzt, also in etwas so:

CODE
$xml = str_replace('prf:', 'prf_', $xml);
$xml = simplexml_load_string($xml);


Danach ging's dann. Weiß nicht, ob dir dieser Workaround weiterhilft wink.gif


--------------------
Top
PMEmail PosterUsers Website
Top
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#3 Geschrieben am: Mi 19.12.2007, 20:28 (+01:20)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2308
Mitglied seit: 4.02.2006


Im Augenblick heißt das Dokument

QUOTE
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:mms="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#"
        xmlns:prf="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#"
        xmlns:pss5="http://www.3gpp.org/profiles/PSS/ccppschema-PSS5#">

  <rdf:Description rdf:ID="Profile">
    <prf:component>
...


Es könnte aber morgen

QUOTE
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:mms="http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#"
        xmlns:dummy="http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#"
        xmlns:pss5="http://www.3gpp.org/profiles/PSS/ccppschema-PSS5#">

  <rdf:Description rdf:ID="Profile">
    <dummy:component>
...


heißen - und wäre weiterhin semantisch dasselbe Xml-Dokument mit demselben Inhalt.

simplexml_load_file kenne ich nicht. Aber bei NET muß man wegen dieser prinzipiellen Möglichkeit, die Präfixe in einem Dokument beliebig benennen zu können, bei Transformationen (oder beim Auswählen von Knoten) einen Namespacemanager übergeben:

QUOTE
Dim _nsMgr As XmlNamespaceManager
_nsMgr = New XmlNamespaceManager(New NameTable)
_nsMgr.AddNamespace("xyz", "http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#")

_xNode_list = _xDoc.SelectNodes("//xyz:template[starts-with(@name, 'irgendeinWert')]", _nsMgr)


Ergebnis: Solange die eigentliche Adresse 'http://www.openmobilealliance.org...' dieselbe ist, funktioniert dieser Code, egal, ob in der Quelldatei 'prf' oder 'dummy' als Präfix verwendet wird.

Sprich: Suche, ob es in diesem Ding simplexml_load_file etwas Analoges gibt. Da sich das Präfix im Quelldokument auch jederzeit ändern kann, ist die Lösung von Jörg heikel.


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung.
Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert.
Top
PMEmail PosterUsers Website
Top
 
Alain_Aubert
#4 Geschrieben am: Mi 19.12.2007, 20:28 (+00:00)
Report PostQuote Post

Ayom Slave
Group Icon

Gruppe: Admin
Beiträge: 4794
Mitglied seit: 25.09.2003


Wie Jörg schon sagt. Namespaces.

Alternativ so: http://www.sitepoint.com/blogs/2005/10/20/...and-namespaces/

PS: Ich will mit dem Link - habs nur überflogen, aber sitepoint ist super - genau auf das hinaus was Jürgen sagt.
Top
PMEmail PosterUsers Website
Top
 
sd12
#5 Geschrieben am: Mi 19.12.2007, 20:58 (+00:30)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Moderatoren
Beiträge: 3580
Mitglied seit: 3.03.2004


Ja, dieser Workarround hiltf mir...

simpleXML kennt eigentlich Namespaces
QUOTE
$xml->registerXPathNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
$xml->registerXPathNamespace('mms', 'http://www.openmobilealliance.org/tech/profiles/MMS/ccppschema-20050301-MMS1.2#');
$xml->registerXPathNamespace('prf', 'http://www.openmobilealliance.org/tech/profiles/UAPROF/ccppschema-20021212#');
$xml->registerXPathNamespace('pss5', 'http://www.3gpp.org/profiles/PSS/ccppschema-PSS5#');


Aber das will bei mir nicht funktionieren.

Über Sitepoint bin ich auch schon gestolpert, werde aber aus den Code nicht schlau...


--------------------
************************
Treiber f[r das Kezboard ist [berfl[ssig.
Top
PMEmail PosterICQMSN
Top
 
jAuer
Jürgen Auer - freiberufl. Programmierer
#6 Geschrieben am: Mi 19.12.2007, 21:14 (+00:16)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 2308
Mitglied seit: 4.02.2006


QUOTE (sd12 @ Mi 19.12.2007, 20:58)
Aber das will bei mir nicht funktionieren.

Dann poste mal noch den entsprechenden Suchcode, der bis jetzt noch nicht funktioniert. Ansonsten ist das im Prinzip dasselbe, was man auch in NET nutzt. Darin liegt ja der Vorteil dieser Xml-Techniken tongue.gif


--------------------
Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.

server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung.
Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert.
Top
PMEmail PosterUsers Website
Top
 
sd12
#7 Geschrieben am: Do 20.12.2007, 00:50 (+03:35)
Report PostQuote Post

AyomRank 9
Group Icon

Gruppe: Moderatoren
Beiträge: 3580
Mitglied seit: 3.03.2004


QUOTE (jAuer @ Mi 19.12.2007, 22:14)
Dann poste mal noch den entsprechenden Suchcode, der bis jetzt noch nicht funktioniert.

Den Suchcode den such ich genau :-)


--------------------
************************
Treiber f[r das Kezboard ist [berfl[ssig.
Top
PMEmail PosterICQMSN
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/22126

Topic Options Reply to this topicStart new topicStart Poll

 





Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]