gpt4 book ai didi

php - 如何使用php删除基于子属性的XML标签?

转载 作者:行者123 更新时间:2023-12-02 09:09:31 25 4
gpt4 key购买 nike

我有一个如下所示的 XML

<entries>
<entry>
<title lang="en">Sample</title>
<entrydate>0</entrydate>
<contents>0</contents>
<entrynum>0</entrynum>
</entry>
<entry>
<title lang="fr">Sample</title>
<entrydate>1</entrydate>
<contents>1</contents>
<entrynum>1</entrynum>
</entry>
</entries>

PHP中有没有一种方法可以根据标题lang属性删除父节点(entry)?我只需要保留 en 节点,因此在这种情况下,我需要获取没有第二个 entry 节点的 XML。

我尝试环顾四周,但找不到任何解决方案......

最佳答案

您需要使用DOMDocument用于将字符串解析为 XML 文档的类。然后使用DOMXpath类在文档中查找目标元素并使用 DOMNode::removeChild()从文档中删除选定的元素。

$doc = new DOMDocument(); 
$doc->loadXML($xml);
$xpath = new DOMXpath($doc);
// select target entry tag
$entry = $xpath->query("//entry[title[@lang='fr']]")->item(0);
// remove selected element
$entry->parentNode->removeChild($entry);
$xml = $doc->savexml();

您可以在 demo 中查看结果

关于php - 如何使用php删除基于子属性的XML标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40002309/

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