Как удалить корневой элемент XML-файла через PHP DOMDocument - PullRequest
0 голосов
/ 16 октября 2019

У меня есть документ XML и файл PHP.

Я хочу удалить корневой элемент документа XML в операторе if в файле PHP, то есть файл XML будет пустым.

Есть ли быстрый способ сделать это через DOM Document?

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Чтобы удалить корневой элемент в DOMDocument, вы удаляете элемент документа (корневой элемент, как я прочитал ваш вопрос) из документа, аналогичного тому, как удалить любой другой дочерний элемент:

<?php

$xml = <<<XML
<root/>
XML;

$doc = new DOMDocument();
$doc->loadXML($xml);
$doc->save('php://output');

echo "---\n";

$doc->removeChild($doc->documentElement);
$doc->save('php://output');

Вывод:

<?xml version="1.0"?>
<root/>
---
<?xml version="1.0"?>

(Рабочий пример: https://3v4l.org/u11Oo)

Как показывает этот пример, элемент документа был удален из документа. Если не будет декларации XML, это будетпросто пусто.

0 голосов
/ 16 октября 2019

Предполагая, что XML-документ является простым файлом на вашем сервере, вы можете отказаться от необходимости делать это с DOM и просто обрезать содержимое файла следующим образом:

$f = fopen("document.xml", "r+");
ftruncate($f, 0);
fclose($f);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...