Как удалить элементы из xml файла через php?

Пользователь

от lamar , в категории: Другие , 9 месяцев назад

Как удалить элементы из xml файла через php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ian.heidenreich , 9 месяцев назад

@lamar 

Для удаления элементов из XML файла в PHP, вы можете использовать библиотеку SimpleXML, которая встроена в PHP и позволяет манипулировать XML.


Вот пример кода для удаления элементов из XML файла:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$xml = simplexml_load_file('file.xml');

// Удаление элементов соответствующих заданным критериям
$elementsToDelete = $xml->xpath('//elementName');
foreach ($elementsToDelete as $element) {
    unset($element[0]);
}

// Сохранение изменений обратно в файл
$xml->asXML('file.xml');


В этом примере мы сначала загружаем XML файл с помощью функции simplexml_load_file. Затем мы используем метод xpath для выбора всех элементов, которые соответствуют заданному критерию. Мы перебираем все найденные элементы и используем функцию unset для их удаления.


Наконец, мы сохраняем изменения обратно в файл, используя метод asXML.

Пользователь

от ciara , 2 месяца назад

@lamar 

Кроме этого метода, вы можете использовать DOMDocument для удаления элементов из XML файла в PHP. Вот пример кода с использованием DOMDocument:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?php
$file = 'file.xml';

$dom = new DOMDocument();
$dom->load($file);

$xpath = new DOMXpath($dom);

// Найти все элементы с заданным именем
$elementsToDelete = $xpath->query('//elementName');

// Удалить найденные элементы
foreach ($elementsToDelete as $element) {
    $element->parentNode->removeChild($element);
}

// Сохранить изменения в файл
$dom->save($file);
?>


Этот метод использует DOMDocument для загрузки XML файла, создает объект DOMXpath для выполнения поиска по XML-документу. Затем он находит все элементы, соответствующие заданному критерию, и удаляет их, вызывая метод removeChild(). Наконец, он сохраняет изменения в исходный XML файл.