PHP SimpleXML如何添加子节点和属性 addChild
发布时间 - 2026-01-28 00:00:00 点击率:次PHP SimpleXML 中添加子节点和属性需用 addChild() 和 addAttribute() 方法,作用于 SimpleXMLElement 对象; addChild() 创建子元素并支持链式调用,自动转义文本内容; addAttribute() 为已有元素添加属性,属性值自动转义但属性名不校验合法性。
PHP SimpleXML 中添加子节点和属性,主要用 addChild() 和 addAttribute() 两个方法。它们操作的是 SimpleXMLElement 对象,不能直接对字符串或普通数组调用。
添加子节点(使用 addChild)
addChild() 用于向当前元素追加一个子元素。它返回新创建的子节点对象,支持链式调用。
- 基本语法:
$child = $parent->addChild('tagName', 'textContent'); - 若只传标签名,会创建空元素:
$elem->addChild('price');→ - 传内容时自动转义特殊字符(如
&变成&),无需手动处理 - 支持链式添加深层结构:
$xml->addChild('book')->addChild('title')->addChild('em')->addAttribute('class', 'highlight')->addChild('text', 'PHP Guide');
添加属性(使用 addAttribute)
addAttribute() 必须在已有元素上调用,不能对文档根直接使用(除非已获取到根元素对象)。
- 语法:
$element->addAttribute('name', 'value'); - 可多次调用添加多个属性:
$item->addAttribute('i
d', '123')->addAttribute('type', 'digital');
- 属性值会被自动转义,但属性名不会校验合法性(非法名可能导致生成无效 XML)
- 不支持命名空间前缀的直接写法(如
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 导致后续调用失败 - 中文等 UTF-8 内容需确保源 XML 声明含
encoding="UTF-8",否则输出可能乱码 - 要插入未转义的 HTML 或 CDATA,SimpleXML 不原生支持,需改用 DOMDocument
# php
# html
# git
# NULL
# 命名空间
# xml
# simpleXML
# 字符串
# class
# 对象
# 链式
# 已有
# 会报
# 作用于
# 的是
# 需用
# 多个
# 不支持
# 不能用
# 第三个
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
电商网站制作价格怎么算,网上拍卖流程以及规则?
EditPlus中的正则表达式 实战(1)
利用JavaScript实现拖拽改变元素大小
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
如何确认建站备案号应放置的具体位置?
晋江文学城电脑版官网 晋江文学城网页版直接进入
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
简单实现jsp分页
bootstrap日历插件datetimepicker使用方法
如何在自有机房高效搭建专业网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
详解CentOS6.5 安装 MySQL5.1.71的方法
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何续费美橙建站之星域名及服务?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
如何撰写建站申请书?关键要点有哪些?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
如何在宝塔面板中修改默认建站目录?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
韩国服务器如何优化跨境访问实现高效连接?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Windows Hello人脸识别突然无法使用
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
佛山企业网站制作公司有哪些,沟通100网上服务官网?
,在苏州找工作,上哪个网站比较好?
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Swift中swift中的switch 语句
如何在万网自助建站中设置域名及备案?
七夕网站制作视频,七夕大促活动怎么报名?
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
如何快速搭建自助建站会员专属系统?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何在阿里云服务器自主搭建网站?
如何在建站之星网店版论坛获取技术支持?
音乐网站服务器如何优化API响应速度?
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
企业网站制作这些问题要关注
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
javascript日期怎么处理_如何格式化输出
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Android中AutoCompleteTextView自动提示


