使用php将不同的子项添加到xml文件中的元素

时间:2015-05-31 17:19:59

标签: php xml simplexml

我想在我的xml文件中添加一些子元素,如下所示:

<test>
  <parameter type="double" name="PHONE_NUMBER" />
  <parameter type="string" name="NAME" />
  <parameter type="string" name="E-MAIL" />
  ...
</test>

我尝试过这样的事情:

$input = simplexml_load_file('new.xml');
$input->test="";
$input->test->addChild("parameter");
$input->test->parameter->addAttribute("type", "double");
$input->test->parameter->addAttribute("name", "PHONE_NUMBER");

$input->test->addChild("parameter");
$input->test->parameter->addAttribute("type", "string");
$input->test->parameter->addAttribute("name", "NAME");
...

但我收到此错误消息:

  

警告:SimpleXMLElement :: addAttribute()[simplexmlelement.addattribute]:   属性已存在

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

1,您无法访问xml根元素,因此请将xml包装为检查'<xml>'.$yourXML.'</xml>

第二个simpleXML无法理解您访问的参数标记。将点保存到已添加的子项并进行修改

$str = '<xml><test>
  <parameter type="double" name="PHONE_NUMBER" />
  <parameter type="string" name="NAME" />
  <parameter type="string" name="E-MAIL" />
</test></xml>';

$input = simplexml_load_string($str);
$input->test="";

$child = $input->test->addChild("parameter");
$child->addAttribute("type", "double");
$child->addAttribute("name", "PHONE_NUMBER");

$child = $input->test->addChild("parameter");
$child->addAttribute("type", "string");
$child->addAttribute("name", "NAME");

echo $input->saveXML();