Обновление теста в XML-файле с помощью php textarea submit - PullRequest
1 голос
/ 08 января 2011

Нужна помощь с XML-файлом для редактирования содержимого моего флеш-сайта, каждый раз, когда я вставляю в textarea, например, «имя», это создает новую активность в XML, и мне нужно, чтобы оно менялось с «плавание» на « имя ". Я обнаружил, что для изменения содержимого в XML мне нужно удалить «плавание» и вставить «Имя» .

Как это сделать, сначала вставить контент в textarea -> сохранить его при нажатии кнопки «обновить» -> удалить старое действие из файла XML, а затем вставить новый контент в файл XML ????

sample.xml

<?xml version="1.0"?>
<list>
    <activity>swimming</activity>
</list>

index.php

<html>
<head><title>test</title></head>
</head>

<body>


<table width="100" border="1">
  <tr>
    <td><?php
    $xmldoc = new DOMDocument();
    $xmldoc->load("sample.xml", LIBXML_NOBLANKS);

    $activities = $xmldoc->firstChild->firstChild;
    if($activities!=null){
        while($activities!=null){
            echo $activities->textContent."";
            $activities = $activities->nextSibling;
        }
    }
?></td>
  </tr>
  <tr>
    <td><form name="input" action="insert.php" method="post">

      <textarea name="activity" cols="70" rows="10"><?php
    $xmldoc = new DOMDocument();
    $xmldoc->load("sample.xml", LIBXML_NOBLANKS);

    $activities = $xmldoc->firstChild->firstChild;
    if($activities!=null){
        while($activities!=null){
            echo $activities->textContent."";
            $activities = $activities->nextSibling;
        }
    }
?></textarea>
    </td>
  </tr>
  <tr>
    <td align="right"><input type="submit" value="Update"/>
  <input name="reset" type="reset" id="reset" value="Reset">
</form></td>
  </tr>
</table>

</body>
</html>

insert.php

<?php
    header('Location:index.php');
    $xmldoc = new DOMDocument();
    $xmldoc->load('sample.xml');

    $newAct = $_POST['activity'];

    $root = $xmldoc->firstChild;

    $newElement = $xmldoc->createElement('activity');
    $root->appendChild($newElement);
    $newText = $xmldoc->createTextNode($newAct);
    $newElement->appendChild($newText);

    $xmldoc->save('sample.xml');
?>

Спасибо всем за помощь !!!

1 Ответ

1 голос
/ 08 января 2011

хорошо, я справился сам, если вам нужно добавить или удалить контент на вашей веб-странице, просто скопируйте все сверху, кроме insert.php

новый insert.php

<?php 
$xmldoc = new DOMDocument;
$xmldoc->load('sample.xml');
foreach ($xmldoc->getElementsByTagName('activity') as $activity)
{
    $activity->parentNode->removeChild($activity);
}
$xmldoc->save('sample.xml');

?>

<?php

    $xmldoc = new DOMDocument();
    $xmldoc->load('sample.xml');

    $newAct = $_POST['activity'];

    $root = $xmldoc->firstChild;

    $newElement = $xmldoc->createElement('activity');
    $root->appendChild($newElement);
    $newText = $xmldoc->createTextNode($newAct);
    $newElement->appendChild($newText);

    $xmldoc->save('sample.xml');

?>

это все спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...