ugrás a tartalomhoz

" hogyan kerül az XML-be?

kempelen · 2006. Már. 25. (Szo), 03.05
Sziasztok!

Két eredményt tudok elérni: Vagy " kerül vele, vagy ". Hogy tudok oda BELEÍRNI XML DOM utasításokkal, hogy lementéskor " legyen benne?

#!/usr/local/php512/bin/php
<?

        $xml = new DOMDocument();
        $xml->loadXML("<a><b></b><b></b></a>");
        $xpath = new DOMXPath($xml);
        $entryNodes = $xpath->query("//a/b");
        foreach($entryNodes as $entry)
        {
                $entry->nodeValue = "&amp;quot;";
        }
        echo $xml->saveXML();
?>
Így lesz &amp;quot; benne.

#!/usr/local/php512/bin/php
<?

        $xml = new DOMDocument();
        $xml->loadXML("<a><b></b><b></b></a>");
        $xpath = new DOMXPath($xml);
        $entryNodes = $xpath->query("//a/b");
        foreach($entryNodes as $entry)
        {
                $entry->nodeValue = "&quot;";
        }
        echo $xml->saveXML();
?>
Így pedig " (sima macskaköröm).

        $xml->substituteEntities = true;
Beírása a newzás után, semmin sem változtat.

1000 thanx,
LionKMP
 
1

És...

janoszen · 2006. Már. 25. (Szo), 11.13
Mi van akkor, ha $xml->substituteEntities = false; és &quot;-ot írsz?
2

nem hat

Anonymous · 2006. Már. 25. (Szo), 15.50
A $xml->substituteEntities property semmire sem hat. (Igazából nincs is dokumentálva, csak fel van sorolva, hogy van olyan.)

Még az < és &lt; viselkedésére sem, true és false esetén is &lt; lesz belőle, tehát soha sem lesz &amp;lt;, ami bizonyos esetekben pedg indokolható lenne: ha a szövegem maga "&lt;", akkor illene belőle &amp;lt;-t csinálnia bizonyos esetekben (ha pl true), hogy visszakapva az XML nodeValue &lt; legyen és ne "<". Bár lehet, hogy kiolvasáskor hatna csak az a substitueEntities dolog, azzal most nem kísérleteztem, mert a kiovasó rutinjaimban nem tapasztaltam rendellenes működést. A gond persze az, hogy az &quot;-ot nem tudom visszaírni.

Kiolvastam, elraktam adatbázisba, az &quot;-os stringeket, és most szeretném visszaírni.

Köszi,
LionKMP