我想在我的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]: 属性已存在
如何解决这个问题?
答案 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();