如何使用 PHP 最好使用 SimpleXML 附加到 XML 文件

2023-12-29

我有一个 XML 文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<data>
    <config>
    </config>

    <galleries>
         // We have loads of these <gallery>
         <gallery>
             <name>Name_Here</name>
             <filepath>filepath/file.txt</filepath>
             <thumb>filepath/thumb.png</thumb>
         </gallery>
    </galleries>
</data>

我一直在试图弄清楚如何将另一个 附加到我上面的 xml 文件中。我尝试使用 simplexml 但无法让它工作,所以我尝试了这个answer https://stackoverflow.com/questions/6214562/merging-xml-in-php以及ASAbunch https://stackoverflow.com/questions/5832676/xml-parsing-with-simple-xmlstackoverflow 上的其他人。但就是无法让它发挥作用。
我可以轻松地从 xml 文件中读取并获取我需要的所有信息,但我需要能够向其附加画廊标签,下面的代码不起作用,当它起作用时,我只能插入 1 个元素,并且它会插入看了3遍,没看懂。

 $data = 'xml/config.xml';
 // Load document
 $xml = new DOMDocument;
 $xml->load( $data ); #load data into the element

 $xpath = new DOMXPath($xml);
 $results = $xpath->query('/data/galleries');
 $gallery_node = $results->item(0);

 $name_node = $xml->createElement('name');
 $name_text = $xml->createTextNode('nametext');

 $name_node = $name_node->appendChild($name_text);

 $gallery_node->appendChild($name_node);

 echo $xml->save($data);

我已经尝试过很多次失败了,这应该很容易。基本上我想添加一个带有孩子名字文件路径和拇指的画廊到同一个文件(xml/config.php)。

就像我说的,我有点让它工作,但它没有格式化,并且没有画廊标签。

Question
如何将另一个 (带有子项)插入到上面的 XML 文件中?
最好甚至使用 simpleXML


通过 SimpleXML,您可以使用addChild() http://php.net/simplexmlelement.addchild method.

$file = 'xml/config.xml';

$xml = simplexml_load_file($file);

$galleries = $xml->galleries;

$gallery = $galleries->addChild('gallery');
$gallery->addChild('name', 'a gallery');
$gallery->addChild('filepath', 'path/to/gallery');
$gallery->addChild('thumb', 'mythumb.jpg');

$xml->asXML($file);

请注意,SimpleXML 不会为您“格式化”XML,但是从未格式化的 SimpleXML 表示形式到整齐缩进的 XML 并不是一个复杂的步骤,并且在lots这里的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PHP 最好使用 SimpleXML 附加到 XML 文件 的相关文章

  • 获取 YouTube 最高缩略图分辨率

    我想获得 youtube 最高缩略图 maxresdefault jpg 像这个 http i ytimg com vi Cj6ho1 G6tw maxresdefault jpg http i ytimg com vi Cj6ho1 G6
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • PHP MongoDb 驱动程序:如何设置执行代码的超时

    我有以下代码 它在 MongoDb 端执行一段代码 mongoCode new MongoCode Some JS code db gt execute mongoCode array socketTimeoutMS gt 1000000
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • 如何在 GitHub Action 中使用不同版本的 PHP 进行测试

    我有一些 PHP 代码 其中包含使用以下命令运行的测试PHPUnit并想对其进行测试GitHub Actions 我在他们的文档中找不到测试 PHP 包的方法 我想使用不同版本的 PHP 进行测试 但他们只有最新的版本7 3安装 您可以添加
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 在 foreach 中使用 QueryPath 的多个查找

    我正在使用 QueryPath 和 PHP 这发现 eventdate 没问题 但不会为 dtstart 返回任何内容 qp htmlqp url foreach qp gt find table schedule gt find tr a
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • 如何在 Windows 上安装 Zend 框架

    安装 Zend Framework 就是这么简单 是的 对 好吧 我正在写一本初学者的书 有一件不太详细的事情是最重要的部分 安装该死的东西 浏览了几个小时的快速入门指南后 它只说 下载 Zend 添加包含目录 bla bla 然后就完成了
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • 在本地 SDK 服务器上工作时,实时 Google App Engine 上出现 404

    我已经在GAE标准环境上部署了几个PHP应用程序 一切正常 现在我正在部署一个新应用程序 该应用程序位于由gcloudSDK按预期工作 终端命令 dev appserver py log level warning app yaml 问题是
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • FreeMarker 模板错误!在struts2中

    我在类中使用基于 Sturts 2 注释的验证 同时显示操作错误 我收到了这个奇怪的 FreeMarker 模板错误 这是我的实体类 Entity public class User implements Serializable priv
  • 如何使用 QEMU 模拟 vmx 功能?

    我读自here https www kernel org doc Documentation virtual kvm nested vmx txt必须通过向命令提供 vmx 选项来显式启用 QEMU 上的 vmx 功能支持 但问题是它似乎不
  • 使用 AllPermission 启用 Java SecurityManager

    我正在努力让自己熟悉SecurityManager但即使是这个简单的场景也失败了 当我从 IDE 内部或命令行运行以下命令时 我得到以下信息例外 https docs oracle com cd E19226 01 820 7699 abg
  • 无法使用 Python3 模块请求 POST 到 Grafana

    我正在尝试使用 Grafana 的后端 API 创建一个仪表板 我首先测试我的 API 令牌是否是使用 GET 设置的 并成功获得返回码 200 如下所示 然后 我尝试使用 POST 创建一个简单的仪表板 但我不断收到返回码 400 我很确
  • 表行划分

    好吧 我的应用程序有一个包含很多表格行的表格布局 但我如何在它们之间进行划分 例如 一个表格行 之后是一行 之后是另一个表格行 依此类推 有一些财产吗 Android 3 0 及更高版本中有此功能 在你的表格布局上 android divi
  • 单元测试方法中是否需要总结

    既然单元测试方法的命名使其目的更有意义 那么单元测试方法是否有必要添加摘要呢 Example
  • 如何将Python字典对象转换为numpy数组

    我有 python dict 对象 其键作为 datetime date 对象 值作为元组对象 gt gt gt data dict datetime date 2006 1 1 5 3 datetime date 2006 1 2 8 8
  • Slim + Twig - 如何在开发过程中关闭 Twig 缓存?

    这是我将其注入 Slim 容器中的树枝视图 Views and Templates https www slimframework com docs features templates html container view functi
  • PHP:包含和需要文件时抛出错误

    我尝试创建一个引导文件 但是每当我尝试在另一个文件中包含或需要它时 就会不断出现这样的错误 Warning require once folder file php function require once 无法打开流 没有这样的文件或目
  • 快速获取特定路径下的所有文件和目录

    我正在创建一个备份应用程序 其中 c 扫描目录 在我使用类似的方法来获取目录中的所有文件和子文件之前 DirectoryInfo di new DirectoryInfo A var directories di GetFiles Sear
  • 如何通过只输入一个EOF来结束scanf

    我遇到了这个问题 我正在使用 while 循环来扫描数字字符串 需要结束扫描并开始继续程序的其余部分 我只是不知道如何刷新标准输入或做任何事情而不按 Ctrl D 两次 我只需要发送 EOF 一次来告诉我的循环结束 while feof s
  • 仅在弹性项目内阻止元素?

    显然 弹性项目容器内只能有块元素 内联 内联块 浮动没有任何作用 这很奇怪 除非我做得完全错误 否则似乎没什么用 这是笔 http codepen io iaezzy pen GggVxe http codepen io iaezzy pe
  • vim diff 可以使用耐心算法吗?

    有没有办法将vimdiff的diff策略设置为耐心算法 它内置于 git 中 似乎比普通的 diff 好得多 以供参考 如何将耐心设置为默认的 git diff 算法 https stackoverflow com questions 44
  • 转到 Google 表格中的最后一行数据

    我查了一下 发现以下代码将前进到 Google 电子表格中数据的最后一行 至少在我们添加第 297 行之外的更多行之前是这样 function myFunction var ss SpreadsheetApp getActiveSpread
  • 在父元素中使用 jQuery 获取数据属性的值

    我有以下 HTML 代码 其中onclick of spot info我想得到的值data test div class spot div class spot main span Test span a href class spot i
  • 解析 XML HttpResponse

    我正在尝试解析从 HttpPost 到服务器 last fm 的 XML HttpResponse 用于 last fm android 应用程序 如果我简单地将它解析为字符串 我可以看到它是一个普通的 xml 字符串 包含所有所需的信息
  • Deploy:capistrano 上的符号链接将“当前”目录指向以前的版本

    我正在使用 capistrano 部署我的 Ruby on Rails 项目 我使用的是 Dreamhost VPS 从几周前开始 在 capistrano 或乘客没有任何变化的情况下 我开始在部署中遇到一个奇怪的问题 每次 capistr
  • “navigator.app”文档在哪里?

    我只看到那个navigator appCordova 应用程序中的对象有一些有用的方法 但它们有记录吗 这似乎是一个特定于平台的 API 有意未记录在案 2012 年初开出了一张票 结论是 由于它是非官方的且特定于平台 因此它将保持未记录状
  • 如何关闭“限定符‘this’。” Resharper 中的警告是多余的吗?

    在我的代码中有很多this 限定符 编写 Python 代码的习惯 所以我在右手边的槽中有很多橙色的小警告标记 上面写着 限定符 this 是多余的 我不想删除this 预选赛 如何关闭橙色警告标记 For 锐锐器 9它已被移动 实际上我从
  • 如何使用 PHP 最好使用 SimpleXML 附加到 XML 文件

    我有一个 XML 文件 如下所示