php xmldom扩展,如何使用比根更深入的PHP DOM向XML添加新元素?

我在网上可以找到的所有这些例子都只涉及在文档根目录中向XML文件中添加内容,但我真的需要做更深入的事情.

我的XML文件很简单,我有:

Image Title

www.link.com/image.jpg

我想要做的就是添加新的“item”元素,每个元素都带有标题和链接.我知道我需要使用PHP DOM,但我对如何编码它感到困惑,因此它在“屏幕截图”中添加数据而不是覆盖整个文档.我怀疑我可能也需要使用XPath,但我不知道怎么做!

我从在线示例拼凑而来的代码看起来像这样(但我确定这是错的)

$newshottitle = "My new screenshot";

$newshotlink = "http://www.image.com/image.jpg";

$dom = newDomDocument;

$dom->formatOutput = true;

$dom->load("../xml/screenshots.xml");

$dom->getElementsByTagName("screenshots");

$t = $dom->createElement("item");

$t = $dom->createElement("title");

$t->appendChild($dom->createTextNode("$newshottitle"));

$l = $dom->createElement("link");

$l->appendChild($dom->createTextNode("$newshotlink"));

$dom->save("../xml/screenshots.xml");

解决方法:

adding content to an XML file at the document root, but I really need to do it deeper than that.

您目前无法在任何地方添加内容!您创建< title>和< link>带有文本的元素节点,然后你不用它们.您应该将它们传递到< item>上的’appendChild’元素节点(您当前正在创建并通过不将其分配给变量立即丢弃).

这是一个起点:

$screenshots= $dom->getElementsByTagName("screenshots")[0];

$title= $dom->createElement("title");

$title->appendChild($dom->createTextNode($newshottitle));

$item= $dom->createElement("item");

$item->appendChild($title);

$screenshots->appendChild($item);

标签:php,dom,xml,xpath

来源: https://codeday.me/bug/20190726/1548162.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值