sql >> Databasteknik >  >> RDS >> Mysql

Hur man sammanfogar liknande taggar i en XML-fil

Detta kan göras med xpath. Här är ett exempel med Simplexml :

Du kan först hitta alla de första bladen:

foreach ($xml->xpath('//*[not(*) and not(preceding-sibling::*)]') as $firstLeaf) {
    ...
}

och sedan sammanfogar du texten med alla följande blad:

    $followingWithSameName = 'following-sibling::*[name(.) = name(preceding-sibling::*[last()])]';
    // change the text of the first leaf
    $firstLeaf[0] = implode(', ', $firstLeaf->xpath(".|$followingWithSameName"));

och sedan tar du bort alla följande blad:

    // remove all following leafs with the same name
    foreach ($firstLeaf->xpath($followingWithSameName) as $leaf) {
        unset($leaf[0]);
    }

Demo




  1. Hur hämtar man data från en SQL Server-databas i C#?

  2. konvertera php date till mysql-format

  3. MED KONTROLL LÄGG TILL BEGRÄNSNING följt av KONTROLL BEGRÄNSNING vs. LÄGG TILL BEGRÄNSNING

  4. Hur man genererar skiftlägeskänsliga kolumner med JPA i MySQL automatiskt