Как редактировать или заменить строку XML с помощью php?

Я должен был изменить свой вопрос на простой вопрос

Например: мое имя файла XML: ABC.xml

внутри этого XML-файла:

<li class="thumb"><a class="Alibaba" href="google.com"></a></li>

Итак, вот мой вопрос: как использовать PHP для поиска строки внутри ABC.xml и найти имя Alibaba, заменить его на имя AlibabaColor и сохранить его в ABC.xml

Пожалуйста, ведите меня и приведите пример для этого. Спасибо

1 ответ

Вы можете сделать это используя php str_replace среди многих других функций. Вот пара примеров ->

Если XML уже находится в строке, вы можете сделать это

PHP:

<?php
    $myXmlString = str_replace('Alibaba', 'AlibabaColor', $myXmlString);
?>

Если вам нужно получить данные XML из другого файла, есть несколько способов сделать это в зависимости от того, хотите ли вы сохранить их, просто замените их и отобразите, или действительно, что вы делаете. Отчасти это сводится к предпочтениям.

Просто нужно отобразить это?

<?php
    $xml = file_get_contents(/path/to/file); // or http://path.to/file.xml
    $myXmlString = str_replace('Alibaba', 'AlibabaColor', $xml);
?>

Нужно изменить сам файл?

<?php
    $xml = file_get_contents(/path/to/file); // or http://path.to/file.xml
    $myXmlString = str_replace('Alibaba', 'AlibabaColor', $xml);
    file_put_contents(/path/to/file, $myXmlString);
?>

-

Чтобы ответить на комментарий ниже, вот рабочий код с моего сервера ->

XML:

<li>hello</li>

PHP:

$file = '/home/username/public_html/xml.xml';
$xml = file_get_contents($file);
$text = str_replace('hello','world',$xml);
file_put_contents($file, $text);

xml.xml после:

<li>world</li>

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

Другие вопросы по тегам