sql >> Database >  >> RDS >> Mysql

Gelijkaardige tags samenvoegen in een XML-bestand

Dit kan met xpath. Hier is een voorbeeld met Simplexml :

Je kunt eerst alle eerste blaadjes vinden:

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

en dan voeg je de tekst samen met alle volgende bladeren:

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

en dan verwijder je alle volgende bladeren:

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

Demo




  1. Tabel wijzigen met subselectie

  2. #1242 - Subquery retourneert meer dan 1 rij - mysql

  3. SQL INSERT INTO… SELECT Voorbeelden

  4. Hoe STR_TO_DATE() werkt in MariaDB