gpt4 book ai didi

php - 如何使用比根更深的 PHP DOM 向 XML 添加新元素?

转载 作者:可可西里 更新时间:2023-11-01 00:18:12 24 4
gpt4 key购买 nike

我可以在网上找到的所有关于此的示例都涉及简单地将内容添加到文档根目录中的 XML 文件,但我确实需要做的比这更深入。

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

<?xml v1 etc>
<channel>
<screenshots>
<item>
<title>Image Title</title>
<link>www.link.com/image.jpg</link>
</item>
</screenshots>
</channel>

我想要做的就是添加新的“项目”元素,每个元素都有一个标题和链接。我知道我需要使用 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> 和 元素节点,然后您对它们什么也不做。您应该将它们传递到 元素节点上的“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 - 如何使用比根更深的 PHP DOM 向 XML 添加新元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/727132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com