bugfix> php > 投稿

私がこのタグを持っているとしましょう

<root>
<foo> </foo>
</root>

このhtmlフォームで

<form action="foo.php method="post">
<input type="text" name="something">
<input type="submit" name="ok">
</form>

データを挿入したい場合は

<?php
if(isset($_POST['ok'])) {
$data=simplexml_load_file('foo.xml') or die('error');
if(isset($_POST['something'])) {    
    $data->foo= $_POST['something'];
}

サブタグにデータを挿入したい場合は、問題なく正常に動作します

<root>
  <foo>
   <test></test>
  </foo>
</root>

私たちは次のようなことをすべきだと思いました

if(isset($_POST['something'])) {    
    $data->foo->test= $_POST['something'];
}

に「こんにちは」があるとしましょう $_POST['something'] 変数 私は次のようなものを期待していました

<root>
  <foo> 
   <test>Hello</test>
  </foo>
</root>

しかし、それは機能しません

回答 2 件
  • <?php
        $root=simplexml_load_file("file.xml") or die("Error"); // first we load the file
        if(isset($_POST['ok'])){ // if we validate the form
        $something= $_POST['something']; // we recover the data with POST
        // let assume that we have 'hello' inside $something
        $root->foo->test = $something; //then we send the data to the xml file
        $root->asXML('foo.xml');
    }
    
    

    出力

    <?xml version="1.0"?>
    <root>
      <foo>
       <test>Hello</test>
      </foo>
    </root>
    
    
    

  • 次のようなものを試してください:

    $dom = new DOMDocument();
    $dom->loadXML('<root>
      <foo>
       <test></test>
      </foo>
    </root>
    ');
    foreach ($dom->getElementsByTagName('test') as $item) {
       $item->textContent="Hello";
    }
    echo $dom->saveXML();
    
    

    出力:

    <?xml version="1.0"?>
    <root>
      <foo>
       <test>Hello</test>
      </foo>
    </root>
    
    

あなたの答え