PHP XML 删除父级

标签 php xml

XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
    <pages>
      <page><title>Home</title><content>Lorem Ipsum</content></page>
      <page><title>Pictures</title><content>Lorem Ipsum</content></page>
      <page><title>Information</title><content>Lorem Ipsum</content></page>
    </pages>
  <css>
    <css-tag><title>background-color</title><value>#FFF</value></css-tag>
  </css>
  <layout>1</layout>
</root>

PHP:

$title = $_GET['0'];

$xml = new DOMDocument('1.0', 'ISO-8859-1');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = true;
$xml->load($location);
$pages = $xml->getElementsByTagName("page");
foreach($pages as $page){
    $pagetitle = $page->getElementsByTagName("title");
    $pagetitlevalue = $pagetitle->item(0)->nodeValue;
    if($title == $pagetitlevalue){
        $pagetitle->item(0)->parentNode->removeChild($pagetitle->item(0));
    }
}
$xml->save($location);

此代码仅删除 <Title>节点,如何更改以摆脱父节点 <Page>节点?

我不知道如何做到这一点,我只是设法摆脱标题节点并获取大量错误代码

最佳答案

虽然我可能会使用 xpath,但你可以找到...

$pagetitle->item(0)->parentNode->removeChild($pagetitle->item(0));

并替换为...

$pagetitle->item(0)->parentNode->parentNode->removeChild($pagetitle->item(0)->parentNode);

在 XML 树中向上一级

关于PHP XML 删除父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10341498/

相关文章:

php - 将 SQL 中的 HTML 插入文本区域?

java - 将 xml 数据从 java 发布到 Rails (restful 服务)

html - 抓取时如何避免加入来自节点的所有文本

python - 如何使用 lxml 将命名空间包含到 xml 文件中?

android - 如何让View填满剩余空间

php - Laravel 6 : FatalThrowableError: Class 'GuzzleHttp\Client' not found in TransportManager. PHP

php - 使用 cron 从不同服务器复制表

php - 如何使用 bash 脚本自动将密码输入到 docker 容器中?

php - 对数组值进行分组并循环

javascript - Blockly 中不寻常的 JavaScript for 循环与 xml