简体   繁体   中英

How to save XML using PHP

Anyone know how I can create and save XML using PHP? I need something like this:

<jukebox>
  <track source="" artist="" album="" title="" />
  <track source="" artist="" album="" title="" />
  <track source="" artist="" album="" title="" />
  <track source="" artist="" album="" title="" />
</jukebox>

This is probably what you are looking for.


    //Creates XML string and XML document using the DOM 
    $dom = new DomDocument('1.0', 'UTF-8'); 

    //add root
    $root = $dom->appendChild($dom->createElement('Root'));

    //add NodeA element to Root
    $nodeA = $dom->createElement('NodeA');
    $root->appendChild($nodeA);

    // Appending attr1 and attr2 to the NodeA element
    $attr = $dom->createAttribute('attr1');
    $attr->appendChild($dom->createTextNode('some text'));
    $nodeA->appendChild($attr);
/*
** insert more nodes
*/

    $dom->formatOutput = true; // set the formatOutput attribute of domDocument to true

    // save XML as string or file 
    $test1 = $dom->saveXML(); // put string in test1
    $dom->save('test1.xml'); // save as file

For more information, have a look at the DOM Documentation .

To do what you want:


    //Creates XML string and XML document using the DOM 
    $dom = new DomDocument('1.0', 'UTF-8'); 

    //add root == jukebox
    $jukebox = $dom->appendChild($dom->createElement('jukebox'));

    for ($i = 0; $i < count($arrayWithTracks); $i++) {

        //add track element to jukebox
        $track = $dom->createElement('track');
        $jukebox->appendChild($track);

        // Appending attributes to track
        $attr = $dom->createAttribute('source');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['source']));
        $track->appendChild($attr);
        $attr = $dom->createAttribute('artist');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['artist']));
        $track->appendChild($attr);
        $attr = $dom->createAttribute('album');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['album']));
        $track->appendChild($attr);
        $attr = $dom->createAttribute('title');
        $attr->appendChild($dom->createTextNode($arrayWithTracks[$i]['title']));
        $track->appendChild($attr);
    }

    $dom->formatOutput = true; // set the formatOutput attribute of domDocument to true

    // save XML as string or file 
    $test1 = $dom->saveXML(); // put string in test1
    $dom->save('test1.xml'); // save as file

Cheers

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM