adding a new node in XML file via PHP

后端 未结 3 1294
我在风中等你
我在风中等你 2020-12-29 16:30

I just wanted to ask a question .. how can i insert a new node in an xml using php. my XML file (questions.xml) is given below



        
相关标签:
3条回答
  • 2020-12-29 16:46

    I'd use SimpleXML for this. It would look somehow like this:

    // Open and parse the XML file
    $xml = simplexml_load_file("questions.xml");
    // Create a child in the first topic node
    $child = $xml->topic[0]->addChild("subtopic");
    // Add the text attribute
    $child->addAttribute("text", "geography");
    

    You can either display the new XML code with echo or store it in a file.

    // Display the new XML code
    echo $xml->asXML();
    // Store new XML code in questions.xml
    $xml->asXML("questions.xml");
    
    0 讨论(0)
  • 2020-12-29 16:47

    The best and safe way is to load your XML document into a PHP DOMDocument object, and then go to your desired node, add a child, and finally save the new version of the XML into a file.

    Take a look at the documentation : DOMDocument

    Example of code:

    // open and load a XML file
    $dom = new DomDocument();
    $dom->load('your_file.xml');
    
    // Apply some modification
    $specificNode = $dom->getElementsByTagName('node_to_catch');
    $newSubTopic = $xmldoc->createElement('subtopic');
    $newSubTopicText = $xmldoc->createTextNode('geography');
    $newSubTopic->appendChild($newSubTopicText);
    $specificNode->appendChild($newSubTopic);
    
    // Save the new version of the file
    $dom->save('your_file_v2.xml');
    
    0 讨论(0)
  • 2020-12-29 17:02

    You can use PHP's Simple XML. You have to read the file content, add the node with Simple XML and write the content back.

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