Mixed Content - Elemente mit gemischtem Inhalt


<html>
  -  <p>Herr M
  -     -  <b>Dienstag</b>
  -  Bauchschmerzen.
  -  </p>
</html>

Inhalt von p auslesen:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => Herr M
                    [1] => p
                    [2] => Array
                        (
                        )

                    [3] => html/p
                    [4] => 1-1
                )

            [1] => Array
                (
                    [0] =>  Bauchschmerzen.
                    [1] => p
                    [2] => Array
                        (
                        )

                    [3] => html/p
                    [4] => 1-1
                )

        )

)

Wir erhalten zwei Werte für p. Das Element enthält zwei Textknoten und ein weiteres untergeordnetes Element mit eigenem Inhalt.

Aufgabe: Ersetzen von Bauchschmerzen durch Zahnschmerzen

Lösungsweg: Wir müssen auf den zweiten Textknoten innerhalb des p-Elements zugreifen und diesen ersetzen:


<?php
$mylines = new xml_line("xml-files/mixed-content1.xml", "hixml");
$arg=array(0, "p", "", "","1-1:2");
$replace= " Zahnschmerzen";
$mylines->change_data($arg,$replace);
$mylines->xml_stream();
echo $mylines->get_output();
?>


<html>
  -  <p>Herr M
  -     -  <b>Dienstag</b>
  -  Zahnschmerzen
  -  </p>
</html>