Mailinglisten-Archive |
Hallo ! Danke für die Information. Ich werde die Sache am Wochenende testen. Leider habe ich nur MySQL 5.1.4x . Mit freundlichen Grüßen Stephan Peter Bieling <net3 at media-palette.de> hat am 12. April 2012 um 18:49 geschrieben: > Hallo Stephan > > Am 12.04.2012 15:06, schrieb Stephan Krauß: > > > Wenn ich folgendes XML in der Tabelle xml und in > > der Spalte xml_text habe. > > > > -------------- > > <person id="1"> > > <firstname>Max</firstname> > > <lastname>Mustermann</lastname> > > <age>53</age> > > </person> > > <person id="2"> > > <firstname>Paul</firstname> > > <lastname>Jack</lastname> > > <age>36</age> > > </person> > > <person id="3"> > > <firstname>Max</firstname> > > <lastname>Lego</lastname> > > <age>20</age> > > </person> > > -------------- > > > > Wie kann ich einen Knoten oder Subknoten löschen ? > > Wie kann ich einen Subknoten einfügen ? > > ich habe gerade noch mal unter Windows 7 mit MySQL 5.5.13 getestet. > Dabei ist mir folgendes aufgefallen: > > > SELECT > UpdateXML('<a><b>ccc</b><b>dddd</b><d></d></a>', '//b', '<e>fff</e>') > AS val3 > > Das funktioniert. > > SELECT UpdateXML( '<a><b>ccc</b><b>dddd</b><d></d></a>', '//b', > '<e>fff</e>' ) AS val3 > > Hier gibt es zwei b-Elemente und es funktioniert nicht. > > @ alle: > Es wäre nett, wenn ihr das mal in eurer Umgebung testen könntet. Ich > verstehe das Mysql-Handbuch so, und XMLPath, dass hier beide b-Elemente > ausgetauscht werden müssten. > > Nun aber zu Deiner Frage: > Bei dem zitierten Code fehlt das Wurzelelement. > Ein Element mit bestimmten Attribut findet man wie im Mysql-Handbuch > beschrieben: > Es ist auch möglich, ein Element basierend auf dem Wert eines oder > mehrerer seiner Attribute zu vergleichen. Dies erfolgt mit der Syntax > tag[@attribute="value"]. So entspricht beispielsweise der Ausdruck > //b[@id="idB"] dem zweiten Element b im Fragment <a><b id="idA"/><c/><b > id="idB"/></a>. Um einen Vergleich mit einem beliebigen Element mit > attribute="value" durchzuführen, benutzen Sie den XPath-Ausdruck > //*[attribute="value"]. > http://dev.mysql.com/doc/refman/5.1/de/xml-functions.html?ff=nopfpls > > Allerdings sehe ich nicht den Sinn darin, diese Daten in einem Feld zu > speichern. Den einzigen Sinn von XML in einem Feld wären für mich > Ergänzungen zum Datensatz, für die es nicht lohnt eine neue Tabelle > anzulegen, die man aber trotzdem strukturieren möchte. > > Bei einer solchen Struktur, wie von Dir vorgestellt, würde ich die > Daten, wenn es unbedingt XML sein muss, direkt mit SimpleXML oder den > DOM-Funktionen > http://de2.php.net/manual/de/refs.xml.php verarbeiten. > Oder mit meinem schon etwas älteren XML-Line > http://www.media-palette.de/tools/xml-line/ > > Viele Grüße > > Peter > > -- > ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de ** > Informationen: http://www.phpbar.de > http://lists.phpbar.de/mailman/listinfo/php >
php::bar PHP Wiki - Listenarchive