PHP SimpleXML 中添加子节点和属性需用 addChild() 和 addAttribute() 方法,作用于 SimpleXMLElement 对象; addChild() 创建子元素并支持链式调用,自动转义文本内容; addAttribute() 为已有元素添加属性,属性值自动转义但属性名不校验合法性。
PHP SimpleXML 中添加子节点和属性,主要用 addChild() 和 addAttribute() 两个方法。它们操作的是 SimpleXMLElement 对象,不能直接对字符串或普通数组调用。
addChild() 用于向当前元素追加一个子元素。它返回新创建的子节点对象,支持链式调用。
$child = $parent->addChild('tagName', 'textContent');
$elem->addChild('price'); → & 变成 &),无需手动处理$xml->addChild('book')->addChild('title')->addChild('em')->addAttribute('class', 'highlight')->addChild('text', 'PHP Guide');
addAttribute() 必须在已有元素上调用,不能对文档根直接使用(除非已获取到根元素对象)。
$element->addAttribute('name', 'value');
$item->addAttribute('id', '123')->addAttribute('type', 'digital');

xs:type),需用第三个参数指定命名空间 URI构建一个带属性和文本内容的完整节点:
$xml = simplexml_load_string(' ');
$item = $xml->addChild('product');
$item->addAttribute('sku', 'P1001');
$item->addAttribute('in_stock', 'true');
$item->addChild('name', 'Wireless Mouse');
$price = $item->addChild('price');
$price->addAttribute('currency', 'USD');
$price->addChild('value', '29.99');
结果 XML 片段:
Wireless Mouse 29.99
SimpleXML 是只读式对象模型,所有修改都作用于内存中的副本;保存需显式调用 asXML() 或 saveXML() 输出。
addChild() 向字符串或 null 添加子节点,会报致命错误$xml->item[0]),确保索引存在,否则返回 false 导致后续调用失败encoding="UTF-8",否则输出可能乱码