我有一个名为'groups.xml'的XML文件,我想创建一个孩子的孩子。
<?xml version="1.0" encoding="UTF-8"?>
<body>
<group_no>2</group_no>
<group id="1">
<name>Admins</name>
<backend>1</backend>
<supplierungen>all</supplierungen>
</group>
<group id="2">
<name>1AFW</name>
<backend>0</backend>
<supplierungen>1AFW</supplierungen>
</group>
</body>
首先,我创建了一个名为“group”的孩子。它没有任何问题,但如果我创建了孩子的“名字”,我会得到以下错误:
注意:未定义的偏移量:C:\ xampp \ htdocs \ HLW \ functions \ cr_gr.php中的0
以下是代码:
$xml = simplexml_load_file("../xml/groups.xml");
$res = $xml->xpath("/body");
$no_gr = $res[0]->group_no;
$res[0]->group_no = $no_gr+1;
$res[0]->addChild("group id=".$res[0]->group_no."");
$res2 = $xml->xpath("/body/group[@id=".$res[0]->group_no."]");
$res2[0]->addChild("name",$_GET['name']);
答案 0 :(得分:1)
你加入孩子的方式似乎有些奇怪。我建议按以下方式进行:
$res = $xml->xpath("/body");
$no_gr = $res[0]->group_no;
$res[0]->group_no = $no_gr+1;
$child = $res[0]->addChild("group");
$child->addAttribute($id, $res[0]->group_no);
$child->addChild("name", $_GET['name']);
SimpleXMLElement::addChild
方法返回一个SimpleXMLElement
对象,表示添加到XML节点的子节点。
从该返回值,您可以将所有属性和子项添加到您需要的节点。