1

我有一个名为“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>

首先,我创建了一个名为“组”的孩子。它可以正常工作,但是如果我创建子“名称”,则会出现以下错误:

注意:未定义的偏移量: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']);
4

1 回答 1

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 节点的子节点。

从该返回值,您可以将所有属性和子节点添加到您需要的节点。

于 2013-05-20T15:12:16.577 回答