php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.08.2004, 17:42  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard SimpleXML: Name des Root-Tags

Hi,

ich habe folgendes XML:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<foo>
    <bar />
</foo>
Nun möchte ich mit SimpleXML an den Namen des Root-Tags kommen. Das wäre im obigen Fall "foo".
Ich habe schon einiges ausprobiert, allerdings brachte nichts den gewünschten Erfolg. Scheinbar ist SimpleXML dafür einfach nich in der Lage. Ein var_dump($simpleXmlObj) zeigt es ebenfalls nicht an.

Wenn jemand eine Idee hat, bitte melden.
Quadaptor ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.08.2004, 09:33  
Gast
 
Beiträge: n/a
Standard

Muhahaha
Naja kannst ja deinen Thread selbst in Anfängerforum verschieben
Und gerade du erzählst MIR was von Erfahrung und ich soll mich im Forum vertun... lollig!

Naja ich will mal gnädig sein
Hier ein Lösungswech

PHP-Code:
<?
$xml 
= new xml_doc($my_xml_code);
$xml->parse();

$root_tag =& $xml->xml_index[0];
?>
  Mit Zitat antworten
Alt 29.08.2004, 09:46  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 642
kid01 befindet sich auf einem aufstrebenden Ast
kid01 eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Du-weisst-schon-wer
Muhahaha
Naja kannst ja deinen Thread selbst in Anfängerforum verschieben
Und gerade du erzählst MIR was von Erfahrung und ich soll mich im Forum vertun... lollig!
Das war sicher nur ein versehen! Auch Profis machen Fehler
*mit eingezogenen Kopf* Anfänger
kid01 ist offline   Mit Zitat antworten
Alt 29.08.2004, 09:55  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard

@dwsw: Nicht die Klappe zu weit aufmachen.

Bin ich gerade auf dem Kopf gefallen oder gibt es die Klasse xml_doc nicht!?
Wenn dem so seit, wieder zurück in das Forum, wo es hingehört.

Ich hoffe ihr habt gelesen, dass es um SimpleXML geht und nicht um Dom oder sonstige Parser!
Quadaptor ist offline   Mit Zitat antworten
Alt 29.08.2004, 12:04  
Gast
 
Beiträge: n/a
Standard

Lesen: http://de3.php.net/xml
http://de3.php.net/xml#39584

Das ist zwar nicht SimpleXml aber SimpleXML ist warscheinlich für einen Profi wie dich ja auch vieeeel zu leicht
  Mit Zitat antworten
Alt 29.08.2004, 12:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard

Ich lach mich Tod! Das ist der klare Beweis für dein kindisches Verhalten und der mangelnden Erfahrung.

Wer zum Einlesen von XML-Dateien DOM oder Expat verwendet, kann nicht von viel Erfahrung sprechen. Das wäre mit Kanonen auf Spatzen geschossen.

SimpleXML hat zwar einen geringen Funktionsumfang, arbeitet allerdings erheblich schneller als DOM. Für was brauch ich die ganzen Features von DOM/Expat, wenn ich nur eine Datei einlesen will?!

Außerdem sind die Tage für Expat gezählt. PHP5 bzw. DOM auf libxml2 basierend bietet eine erheblich stabilere XML-Unterstützung als noch unter PHP4.

Das nächste Mal solltest du dir evtl. vorher überlegen, wann und bei wem du eine Klappe aufmachst und irgendwelche dummen Sprüche von dir gibst.

Frage:
Deiner Meinung nach, wäre wohl SQLite auch nur für Leute, die nicht mit MySQL umgehen können und nicht für Profis, oder!?

Kind, du tust mir leid.
Quadaptor ist offline   Mit Zitat antworten
Alt 29.08.2004, 12:44  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also.
ich verschiebe das wieder ins profiforum.

quadaptor erfüllt ganz klar die anforderungen, um dort zu posten und da es bisher ja auch noch keine verwertbare lösung gab, weder hier noch in anderen foren denke ich nicht, dass dies eine PHP-anfänger frage ist.

ich bitte d-w-s-w diese aggressive haltung abzulegen. so reagieren wir (quadaptor und ich) nämlich NIE.
jeder beitrag in diesem thread (egal von wem er kommt), der nichts mit einem lösungsversuch zu tun hat wird ohne kommentar gelöscht. das profiforum ist KEIN spielplatz.

im offtopicbereich können wir uns die köpfe abreißen. HIER NICHT:

btw: ich habe auch keine lösung!

grüße ben.
imported_Ben ist offline   Mit Zitat antworten
Alt 29.08.2004, 13:10  
Gast
 
Beiträge: n/a
Standard

Ich bezweifel mal, dass simplexml schneller ist als DOM; sie teilen sich die selbe Implementierung (libXML2). Die Funktionen dom_import_simplexml() und simplexml_import_dom() z.B. müssen das Dokument nicht neu parsen, wenn die eine Darstellung in die andere übersetzt wird; sie arbeiten einfach auf den selben Daten.
Das läßt sich ganz gut daran erkennen, dass sich eine Änderung über DOM auf die SimpleXML-Darstellung durchschlägt
PHP-Code:
<?php
$doc 
'<?xml version="1.0" encoding="UTF-8"?>
<foo>
    <bar>a</bar>
    <bar>b</bar>
    <bar>c</bar>
</foo>'
;

$sxml simplexml_load_string($doc);
echo 
'1: '$sxml->bar[0], "\n";

// jetzt fliegt <bar>a</bar> raus
$domElem dom_import_SimpleXML($sxml);
$bars $domElem->getElementsByTagName("bar");
$domElem->removeChild($bars->item(0));

// und schon ist das erste Element <bar>b</bar>
echo '2: '$sxml->bar[0], "\n";
?>
Wie man an den Namen des aktuellen Elements ins SimpleXML kommt, weiss ich leider auch nicht. Auch meine Versuche per $obj->xpath über die xpath-Funktion name() daran zu kommen, sind fehlgeschlagen
  Mit Zitat antworten
Alt 29.08.2004, 15:02  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von VolkerK
Auch meine Versuche per $obj->xpath über die xpath-Funktion name() daran zu kommen, sind fehlgeschlagen
name() in XPath liefert einen String, $obj->xpath() scheint aber nur Nodesets zurückzuliefern zu wollen. Eine Möglichkeit zum Konvertieren habe ich nicht gefunden.

Zitat:
Zitat von Quadaptor
Wer zum Einlesen von XML-Dateien DOM oder Expat verwendet, kann nicht von viel Erfahrung sprechen. Das wäre mit Kanonen auf Spatzen geschossen.
SimpleXML scheint auf der gleichen Engine zu laufen wie DOM, von der Geschwindigkeit her dürften die sich nicht viel geben. SimpleXML hat eher Vorteile beim Komfort, da aber deutliche. Bis darauf, dass man die Namen der Elemente nicht auslesen kann... wäre vielleicht ein Feature-Request wert.
Und wenn Du Expat sagst, meinst Du SAX
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 29.08.2004, 15:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard

Bisher schonmal danke für eure beiden Antworten.

Ich dachte eigentlich bisher, dass SimpleXML nicht auf libxml2 basiert. So steht es jedenfalls im Buch "PHP5 - Die Neuerungen" von Martin Goldmann und Markus Schraudolph. An dieser Stelle bin ich mir aber nicht mehr ganz sicher. Werde morgen auf der Arbeit das nochmal nachlesen.

Wenn wirklich SimpleXML libxml2, verwendet, werde ich wohl DOM verwenden. DOM bin ich schon genug aus Java (JDOM) gewohnt und sollte kein Problem sein.

Ich werde später mal paar Performance- und Vergleichstests durchführen und dann nochmal berichten.

Gruß,
Dennis

btw.: Expat oder SAX ist bei mir das Gleiche. :P
Expat war die Bibliothek und SAX der Parser oder wie war das genau?
Quadaptor ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP/XML: SimpleXML Zergling-new Tutorials 1 08.04.2009 00:10
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
mysql tags notyyy Datenbanken 4 12.02.2008 08:39
lamp klappt noch nicht nixdorf PHP Tipps 2006 14 16.10.2006 15:30
Postfix/SMTPD: SASL Login authentication failed iRadiaX Server, Hosting und Workstations 5 21.04.2006 23:23
PHP mails gehen nicht mehr Server, Hosting und Workstations 23 29.10.2005 23:25
[php] Root Passwort ändern [linux] PHP Tipps 2005-2 3 27.10.2005 14:52
[Erledigt] XML mit simplexml und xpath in HTML umwandeln PHP-Fortgeschrittene 3 15.07.2005 01:39
PHP1 Script freq.9 PHP Tipps 2005 15 27.04.2005 14:18
init.d script mit php starten (root rechte bekommen) PHP-Fortgeschrittene 5 18.04.2005 17:20
root ausgesperrt Datenbanken 3 05.04.2005 14:15
Ermitteln welche Scripte noch MySQL-Verbindung offen haben MrMarco PHP-Fortgeschrittene 40 05.04.2005 09:34
[Erledigt] tags über datenbank ausgeben , hilfe : ) Datenbanken 1 31.08.2004 17:08
[Erledigt] GD lib in PHP einbinden PHP-Fortgeschrittene 15 24.08.2004 17:37
root kann sich nicht anmelden ssh. c01001 Server, Hosting und Workstations 2 05.08.2004 22:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
simplexml root, simplexml root element, simplexml get root element, php simplexml root element, simplexml parent node, simplexml vorteile, simple_xml root, simplexml name, simplexml root tag, xml mehrere roots, @root simplexml, simplexml root node, php xml root element auslesen, php simplexml get root node content, simpleyxml root, simple xml root tag name, php get root elelemtn simple xml, php simplexml root auslesen, in einer xml mehrere root, php simplexml get root node

Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.