XML PHP => text contents muteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kenneth

Kenneth

15/06/2005 15:56:00
Quote Anchor link
Hallo, Kan iemand mij helpen met het muteren van het “textContent” van de noden in een XML bestand.

Het XML bestand zie er zo uit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="iso-8859-1"?>

<config>
<database>
<host>localhost</host>
<user>root</user>
<password>root</password>
</database>
<ftp>
</ftp>
</config>

Hiermee wil ik de tekst content van de noten: host, user en password veranderen. Ik probeer eerst nieuwe noden te maken met een andere tekst content en dan de ouwe noden te vervangen met de functie replaceChild(). Ik gebruik drie maal de functie replaceChild() en het probleem is dat de functie replaceChild alleen één keer kan aangeroepen worden , de keren daarna doet het niet meer… Ik hoop iemand mij kan helpen.. hieronder ziet u mijn code.


// de document wordt opgeladen
$doc = new DomDocument();
$doc->load("config.xml");


// een functie om een oud node te vervangen door een nieuwe
function replaceNode($document, $tagName, $textNode, $oldNode){
$newNode = $document->createElement($tagName);
$titletext = $document->createTextNode($textNode);
$newNode->appendChild($titletext);
$oldNode->parentNode->replaceChild($newNode, $oldNode);
}


// hier wordt drie maal de eigen functie replaceNode() aangeroepen
// waar alleen de eerste keer het doet

if (isset($_POST["host"]) && $_POST["host"] !="" && isset($_POST["user"]) && $_POST["user"] !="" && isset($_POST["pwd"]) && $_POST["pwd"] !=""){
foreach ($doc->documentElement->childNodes as $config) {
// nodeType: 1 voor een XML element en 3 voor een text node
if ($config->nodeType == 1 && $config->nodeName == "database") {
foreach ($config->childNodes as $database) {
if ($database->nodeType == 1 && $database->nodeName == "host") {
//echo $database->textContent;
replaceNode($doc, "host", $_POST["host"], $database);
}
if ($database->nodeType == 1 && $database->nodeName == "user") {
echo "test".$database->textContent;
replaceNode($doc, "user", $_POST["user"], $database);
}
if ($database->nodeType == 1 && $database->nodeName == "password") {
$database->parentNode->replaceChild($new, $database);
}
}
}
if ($config->nodeType == 1 && $config->nodeName == "ftp") {
foreach ($config->childNodes as $ftp) {
}
}
}
print $doc->save("config.xml");
}
 
PHP hulp

PHP hulp

15/11/2024 18:29:09
 

15/06/2005 15:59:00
Quote Anchor link
Ik heb 1 tip voor je: zet bij php bestanden nooit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml neer, want de browser kan dit opvatten als php! Doe daarom <?php echo "<?xml ....":
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.