Как переименовать значение в xml с помощью PHP? Это то, что я получил до сих пор:Как переименовать значения XML с помощью php?
<?php
$q = $_GET["q"];
$q = stripslashes($q);
$q = explode('|^', $q);
$old = $q[0];
$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->Load("test.xml");
$xpath = new DOMXPath($dom);
$query1 = 'channel/item[title="' . $old . '"]/title';
$entries = $xpath->query($query1);
foreach ($entries as $entry)
{
$oldchapter = $entry->parentNode->removeChild($entry);
$item = $dom->getElementsByTagName('item');
foreach ($item as $items)
{
$title = $dom->createElement('title', $q[1]);
$items->appendChild($title);
}
}
$dom->save("test.xml");
В принципе, то, что он делает это взять два названия из URL, старого существующего названия, а один пользователь хочет изменить его (так как это oldtitle|^newtitle
), и помещает их в массив.
То, что я пробовал делать, - это удаление существующего старого заголовка, а затем создание нового заголовка с использованием нового значения заголовка из URL-адреса, но он, похоже, не работает. Где я ошибаюсь, или есть более простой способ сделать это?
кажется, что вы устанавливаете '$ dom-> preserveWhiteSpace' четыре раза, когда только первый должно быть необходимыми ... –
@FrankFarmer сожалеют об этом, зафиксировал его. Есть ли какой-то способ, хотя я могу добиться этого? – looserlf
@looserlf: Проверьте свой код еще раз, я внесла некоторые исправления. Большинство этих настроек вы можете устанавливать только * один раз * и принадлежать перед выполнением 'load()' (это не совсем точно, но оно должно дать вам хорошее руководство в начале, пока вы не прочитаете об этих свойствах в руководстве и не поняли что они делают). – hakre