How to save XML using PHP

后端 未结 1 1873
孤城傲影
孤城傲影 2021-01-12 12:17

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


  

        
相关标签:
1条回答
  • 2021-01-12 12:35

    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

    0 讨论(0)
提交回复
热议问题