Hello,
I have a problem concerning DOM and XML.
The structure of my xml is the following:
<?xml version="1.0" encoding="utf-8"?>
<website>
<language1>
<seite>
<bereich1>
<text></text>
<link>
<link></link>
</link>
<link>
<link></link>
</link>
<link>
</link>
</bereich1>
<bereich2>
</bereich2>
</seite>
</language1>
</website>
if I change and save the contents of the link-tags, there is no
problem.
(to change the value of a link, I simply select them by getElementsByID
and loop them in a for-loop).
But if I have to delete one of them, it seems that the hierarchy
somehow causes trouble, a "not found error" occurs.
If there is only a list of links, which doesn't contain other links,
the deleting works.
My question: why does the principle of the for-looping work with
changing the values of the link, but doesnt work when i want to delete
them?
The code for deleting:
$DeleteIt=(int) $DeleteIt;
if($Sprache=="D eutsch") $parent =
$dom->getElementsByT agName('languag e1')->item(0);
else if ($Sprache=="Eng lisch") $parent =
$dom->getElementsByT agName('languag e2')->item(0);
$parent2=$paren t->getElementsByT agName('seite')->item($Seite) ;
$parent3=$paren t2->getElementsByT agName('bereich 1')->item(0);
$toDelete=$pare nt3->getElementsByT agName('link')->item($DeleteIt );
$okay = $parent3->removeChild($t oDelete);
if I replace the last two lines by:
$toDelete=$pare nt3->getElementsByT agName('link')->item($DeleteIt )->nodeValue;
echo $toDelete;
the value of the link that has to be deleted is given - this works.
Can anyone help me solving the problem or explaining why the one works
and the other doesn't?
I have a problem concerning DOM and XML.
The structure of my xml is the following:
<?xml version="1.0" encoding="utf-8"?>
<website>
<language1>
<seite>
<bereich1>
<text></text>
<link>
<link></link>
</link>
<link>
<link></link>
</link>
<link>
</link>
</bereich1>
<bereich2>
</bereich2>
</seite>
</language1>
</website>
if I change and save the contents of the link-tags, there is no
problem.
(to change the value of a link, I simply select them by getElementsByID
and loop them in a for-loop).
But if I have to delete one of them, it seems that the hierarchy
somehow causes trouble, a "not found error" occurs.
If there is only a list of links, which doesn't contain other links,
the deleting works.
My question: why does the principle of the for-looping work with
changing the values of the link, but doesnt work when i want to delete
them?
The code for deleting:
$DeleteIt=(int) $DeleteIt;
if($Sprache=="D eutsch") $parent =
$dom->getElementsByT agName('languag e1')->item(0);
else if ($Sprache=="Eng lisch") $parent =
$dom->getElementsByT agName('languag e2')->item(0);
$parent2=$paren t->getElementsByT agName('seite')->item($Seite) ;
$parent3=$paren t2->getElementsByT agName('bereich 1')->item(0);
$toDelete=$pare nt3->getElementsByT agName('link')->item($DeleteIt );
$okay = $parent3->removeChild($t oDelete);
if I replace the last two lines by:
$toDelete=$pare nt3->getElementsByT agName('link')->item($DeleteIt )->nodeValue;
echo $toDelete;
the value of the link that has to be deleted is given - this works.
Can anyone help me solving the problem or explaining why the one works
and the other doesn't?
Comment