spree1: XML Element bearbeiten

hallo,

ich habe mal eine kleine frage. und zwar habe ich in etwa die folgende xml-struktur vorliegen:

<tag1>eins</tag1>
<tag2>zwei</tag2>
<tag3>drei</tag3>

ich möchte nun gern um die werte (eins, zwei, drei) noch ein <value> tag haben. sprich:

<tag1><value>eins</value></tag1>

und das für alle <tags> in meiner struktur, diese liegen auch alle auf einer ebene. wie mache ich das am schnellsten, einfachsten?!?!

danke und grüße
spree1

  1. Hi,

    ich würde es mit regulären Ausdrücken versuchen.

    also auf ein Starttag prüfen dann der wert, dann das End-Tag.

    dann den Wert replacen mit dem neuen Wert.

    Schau dir mal die preg_replace oder preg_match an.

    Ansonsten gibt es für PHP vielleicht auch XMLReader (wie in Java und in .NET).
    Damit kannste das sicher auch auseinander pflücken.

    Google mal.

    Gruß
    Christian

    hallo,

    ich habe mal eine kleine frage. und zwar habe ich in etwa die folgende xml-struktur vorliegen:

    <tag1>eins</tag1>
    <tag2>zwei</tag2>
    <tag3>drei</tag3>

    ich möchte nun gern um die werte (eins, zwei, drei) noch ein <value> tag haben. sprich:

    <tag1><value>eins</value></tag1>

    und das für alle <tags> in meiner struktur, diese liegen auch alle auf einer ebene. wie mache ich das am schnellsten, einfachsten?!?!

    danke und grüße
    spree1

  2. Hallo spree1.

    ich habe mal eine kleine frage. und zwar habe ich in etwa die folgende xml-struktur vorliegen:

    <tag1>eins</tag1>
    <tag2>zwei</tag2>
    <tag3>drei</tag3>

    ich möchte nun gern um die werte (eins, zwei, drei) noch ein <value> tag haben. sprich:

    <tag1><value>eins</value></tag1>

    und das für alle <tags> in meiner struktur, diese liegen auch alle auf einer ebene. wie mache ich das am schnellsten, einfachsten?!?!

    Ob schnell und einfach musst du selbst entscheiden, aber ich persönlich würde dies mit Hilfe des DOMs machen.

    Für dein Dokumentfitzelchen dürfte folgender Ablauf genügen:

    1. DOMDocument-Objekt erzeugen
    2. Mit Hilfe von getElementsByTagName('*') alle Elemente abarbeiten
    3. Den textlichen Wert (nodeValue) jedes Elementes einlesen und zwischenspeichern
    4. Das value-Element erzeugen und ihm den Text anhängen (einfach dessen nodeValue zuweisen)
    5. Den Textknoten innerhalb der tag*-Elemente durch den value-Elementknoten ersetzen

    Einen schönen Donnerstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules