Mikäs kumma tässä nyt oikein mättää. Tulkki heittää herjan Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error'DOMNode->replaceChild(Object(DOMElement), Object(DOMElement)) #1 {main} thrown. Herja tulee muokkaa.php:n riviltä 34, jolla lukee seuraavaa.
PHP:n versio on 5.2.6
palvelinsoftana on apache 2.2
<?php $oma -> replaceChild($uusiSolmu, $haettuSolmu); ?>
Kokonaisuudessaan tämä tekstin vaihtaminen yritetään tehdä seuraavalla koodin pätkällä, mikäli tästä on yhtään apua.
<?php $filu = siivoaSyote($_POST['filu']); //../esimerkki/yhdistys.php $kpl = siivoaSyote($_POST['kpl']); // 1 $mika = siivoaSyote($_POST['mika']); // p $asia = siivoaSyote($_POST['asia']); $oma = new DomDocument(); $oma -> loadHTMLfile($filu); $haettuSolmu = $oma -> getElementsByTagName($mika) -> item($kpl); //echo $haettuSolmu -> textContent; //Tämä tulostuus oikein! //Ovatko seuraavat 3 riviä oikein / järkeviä? $uusiSolmu = $oma -> createElement($mika); $uusiTeksti = $oma -> createTextNode($asia); $uusiSolmu -> appendChild($uusiTeksti); $oma -> replaceChild($uusiSolmu, $haettuSolmu); //Tässä tuskin on ongelmaa! $oma -> saveHTMLfile($filu); } ?>
Puuttuuko jotain oleellista tietoa?
Tietääkseni nämä funktiot vaativat aina juuri ylemmän solmun, eivät dokumenttia.
// (JavaScript) Ei näin: document.removeChild(a); // Kyllä näin: a.parentNode.removeChild(a);
Ehkäpä tuossakin aivan samalla periaatteella pitäisi ensin hakea se vanhan solmun vanhempi ja käyttää sitä dokumentin sijaan.
Aah sain toimimaan kotipalvelimellani, mutta sivusto jolle tuota tarvitsen on kieltänyt saveHTMLfile funktion käytön. Kiitos kuitenkin sinulle metabolix.
Aihe on jo aika vanha, joten et voi enää vastata siihen.