-1

次の XML ファイルがあります。

<root>
  <SignUp user_id = 'joseph' image = 'myByk.jpg' />
  <SignUp user_id = 'jack' image = 'myCar.jpg' />  
  <SignUp user_id = 'lamp' image = 'myhome.jpg' />
</root>

このファイル内で、 「 」SignUpを持つ要素を取得し、その属性を変更したいと考えています。user_idjackimage

次のPHPコードを試しました:

<?php
  $dom = new DomDocument();
  $dom->load('data_out.xml');
  $xp = new DomXPath($dom);
  $res = $xp->query("//*[@user_id = 'jack']");
  $xp->SignUp->attributes()->image = "my School.jpg";
  $dom->save('data_out.xml');
?>

しかし、それは機能していないようです...

4

2 に答える 2

1

次に、おそらく op は SimpleXML の使用を検討する必要があります。

if ($root = simplexml_load_file('xml.xml') ) 
{
    //access attributes like an array:
    echo $root->SignUp[0]["user_id"] . "\n";  

    $target_elements = $root->xpath("//*[@user_id = 'jack']");
    $target_elements[0]["image"] = "mySchool.jpg";
    $root->asXML('datat_out.xml');

}

属性を変更するために、面倒なを使用する必要がないことに注意してください。

$target_attr = "image";
$target_elements[0]->attributes()->$target_attr = "hello";
于 2013-06-01T23:05:32.490 に答える