Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dodanie array do XML
Forum PHP.pl > Forum > Przedszkole
trifek
Hej,
Mam mały problem z XML. Potrzebuję dodać array z ITEMS do wybranego węzła XML.
Mam taki kod:

  1. $xml = new SimpleXMLElement('<TICKET/>');
  2. foreach( $contactParm as $key => $value ) {
  3. if($key == "MATRYCA")
  4. {
  5. $subjectsArray = json_decode($value, true);
  6. $subjects = "";
  7. //$xml->addChild( $key, $value );
  8. foreach ($subjectsArray as $subject)
  9. {
  10. $subjects .= "<ITEM>". $subject."</ITEM>";
  11. }
  12. $xml->addChild( $key, $subjects);
  13. }
  14. else {
  15. $xml->addChild( $key, $value );
  16. }
  17. }
  18. $xml->asXML();
  19. dd($xml);


W $contactParm mam:

  1. ^ array:3 [
  2. "MATRYCA" => "[2357, 2099, 7811, 2604]"
  3. "NOTATKA" => "olalalala"
  4. "DATAKONTAKT" => "2023-02-14 09:56"
  5. ]




W wyniku tego kodu otrzymuję:

  1. ^ SimpleXMLElement {#3
  2. +"MATRYCA": "<ITEM>2357</ITEM><ITEM>2099</ITEM><ITEM>7811</ITEM><ITEM>2604</ITEM>"
  3. +"NOTATKA": "olalalala"
  4. +"DATAKONTAKT": "2023-02-14 09:57"
  5. }


a chciałbym:

  1. ^ SimpleXMLElement {#3
  2. +"MATRYCA": ..... tutaj array z <items> zamiast stringa .....
  3. ....
  4. }


W jaki sposób to zrobić?
trueblue
Dodać każdy $subject odrębnie (metodą addChild).
sadistic_son
No to zmień $subjects .= "<ITEM>". $subject."</ITEM>"; na $subjects[] = "<ITEM>". $subject."</ITEM>"; oraz $subjects = ""; na $subjects = array();

EDIT: widzę kolega wyżej ma lepszy pomysł, to się nie mieszam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.