php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.07.2004, 16:15  
Gast
 
Beiträge: n/a
Standard Elemente/Nodes mit SimpleXML hinzufügen

Hallo!

Ich bin mir zwar fast sicher, dass das nicht geht, weil ich weder im Handbuch noch nach ca 1 Stunde Google nichts darüber gefunden habe, aber vielleicht werde ich hier ja eines besseren belehrt (hoffentlich). Kann man mit SimpleXML Nodes oder Elemente hinzufügen?

Ich nehme mal das Beispiel aus dem PHP-Handbuch:

Code:
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
   <name>Ms. Coder</name>
   <actor>Onlivia Actora</actor>
   </character>
   <character>
   <name>Mr. Coder</name>
   <actor>El ActÓr</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
Wenn ich jetzt einen zweiten Film oder weitere Schauspieler (also weitere Elemente <movie>...</movie> bzw <character>...</character>) hinzufügen will, wie stelle ich das an? Einen Wert zu ändern ist ja einfach, auf die selbe Weise einen Wert hinzuzufügen funktioniert allerdings nicht:

Code:
# $xmlSting ist obige XML-Datei als String
$xml = simplexml_load_string($xmlString);

# Einen Wert zu ändern funktioniert:
$xml->movie[0]->rating[0] = 1;
# Einen Wert hinzuzufügen funktioniert nicht:
$xml->movie[0]->rating[2] = 1;
Gibt es da eine 'offizielle' Möglichkeit, oder zumindest einen einfach Walkaround um so etwas zu bewerkstelligen?

Eine alternative Möglichkeit wäre den eingelesenen String mit Regular Expressions oder anderen Stringfunktionen zu bearbeiten. Das gefällt mir aber nicht besonders, denn dafür sind ja XML-Extensions da. Eine andere Möglichkeit ist, einen Umweg über die DOM-Extension zu gehen. Das gefällt mir aber auch nicht wirklich, weil diese ziemlich kompliziert ist.

Hat vielleicht noch jemand eine andere Idee? Dafür wäre ich echt dankbar...

KMAssS
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.07.2004, 18:39  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 1.531
Quadaptor befindet sich auf einem aufstrebenden Ast
Standard

SimpleXML unterstützt nur die Änderung von Werten, keine Modifikationen der XML-Struktur. Das steht auch irgendwo im Handbuch oder auf der Zend-Seite. Weiß nicht mehr genau wo.

Ich empfehle dir keine reguläre Ausdrücke zu verwenden. Letztendlich kommt es nämlich drauf hinaus, dass du dir einen eigenen XML-Parser schreibst bzw. schreiben musst.

An dieser Stelle kann ich dir nur DOM empfehlen. Diese Extension ist echt der wahnsinn. Vielleicht noch nicht ganz vergleichbar mit JDOM...naja, wer weiß, was die Zukunft mit sich bringt.
Quadaptor ist offline   Mit Zitat antworten
Alt 30.07.2004, 19:00  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Im PDF hier:
http://www.virtuelle-maschine.de/sit....php?contId=13
Ist genau dieser Fall beschrieben .. .der wechsel von SimpeXML zu DOM, um Elemente anzufügen .. und wieder zurück ....
Guradia ist offline   Mit Zitat antworten
Alt 31.07.2004, 00:51  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Quadaptor
SimpleXML unterstützt nur die Änderung von Werten, keine Modifikationen der XML-Struktur.
Genau das hatte ich befürchtet. Naja, dann werde ich mich wohl an DOM ran machen. Nachdem was Guradia sagt, lohnt sich das wohl Danke auf jeden Fall für eure Antworten...

KMAssS
  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
SimpleXML: Doppelpunkt im Elementnamen swmsherl PHP Tipps 2008 2 01.06.2008 18:03
simplexml und media rss zeimann PHP Tipps 2008 2 21.05.2008 23:51
simplexml, redundante elemente und php Igäl PHP Tipps 2007 9 13.07.2007 19:12
SimpleXML parst nicht korrekt? Anotherone PHP-Fortgeschrittene 2 08.03.2007 12:27
1. Knotenname eines XML-Dokuments mit SimpleXML Clue PHP Tipps 2006 14 20.04.2006 17:42
simplexml & elementnamen ermitteln flyingeagle PHP Tipps 2006 7 13.02.2006 21:18
[Erledigt] XML mit simplexml und xpath in HTML umwandeln PHP-Fortgeschrittene 3 15.07.2005 01:39
[Erledigt] SimpleXML Frage PHP-Fortgeschrittene 2 01.06.2005 22:16
Alternative zu simplexml Buhmann Beitragsarchiv 6 17.05.2005 16:10
Bug in SimpleXML? PHP-Fortgeschrittene 8 10.03.2005 08:54
[Erledigt] XML Verarbeitung mit SimpleXML PHP5 PHP-Fortgeschrittene 1 29.12.2004 11:22
[Erledigt] PHP5 bei 1&amp;1 mit simplexml,...? PHP-Fortgeschrittene 8 12.12.2004 12:08
[Erledigt] SimpleXML Entities PHP-Fortgeschrittene 4 19.11.2004 18:21
SimpleXML: Name des Root-Tags Quadaptor PHP-Fortgeschrittene 12 11.09.2004 22:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php simplexml, simplexml knoten hinzufügen, simplexml hinzufügen, simplexml werte ändern, php simplexml hinzufügen, simplexml node hinzufügen, php xml knoten hinzufügen, simplexml element hinzufügen, php simplexml bearbeiten, php xml node hinzufügen, simplexml ändern, php xml knoten einfügen, simplexml bearbeiten, http://www.php.de/php-fortgeschrittene/6022-elemente-nodes-mit-simplexml-hinzufuegen.html, php simplexml element ändern, php simplexml xml string einfügen, simplexml element ändern, simplexml node, php xml knoten ändern, php simplexml element hinzufügen

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 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.