Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć podobne tagi w pliku XML

Można to zrobić za pomocą xpath. Oto przykład z Simpleksml :

Możesz najpierw znaleźć wszystkie pierwsze liście:

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

a następnie łączysz tekst ze wszystkimi następującymi listkami:

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

a następnie usuwasz wszystkie następujące liście:

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

Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wygenerować numerację sekwencyjną w wordpressie

  2. Zapytanie MySQL:Używanie UNION i pobieranie numeru wiersza jako część SELECT

  3. Nie można utworzyć pliku testowego niższy test serwer startowy mysql

  4. Jak uruchomić skrypt SQL w MySQL?

  5. LAST_INSERT_ID() nie jest równe $db->insert_id?