• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

xml xpath probs

Bexsta

New member
hallo..

wie bereits im titel geschrieben versuche ich eine xml mit xpath auszulesen.
es erscheint immer die fehlermeldung: "

Warning: SimpleXMLElement::xpath() [simplexmlelement.xpath]: Invalid predicate in J:\xampp\htdocs\okv2\mobile\php\beratung.php on line 11

Warning: SimpleXMLElement::xpath() [simplexmlelement.xpath]: xmlXPathEval: evaluation failed in J:\xampp\htdocs\okv2\mobile\php\beratung.php on line 11
Artikel nicht vorhanden! "


kann mir die meldung nicht erklären da der pfad korrekt ist.

vieleicht kann mir jemand etwas auf die sprünge helfen.

PHP:
PHP:
	  $mainid = 'services';
      $subid = 'beratung,';

if (file_exists("../../data.xml")) {

         $xml = simplexml_load_file("../../data.xml");

         $path ="/site/structure/main[@id=".$mainid."]/sub[@id=".$subid."]";

         if (!$res = $xml->xpath($path)) {
			   echo "Artikel nicht vorhanden!";
			   }
			   else {
			  // echo "<h1>".$res[0]->titel."</h1>";
			  //echo "<p><b>".$res[0]->teaser."</b></p>";
			   echo "<p>".$res[0]->txt."</p>";
		}
}else {
  	 exit("Konnte Datei nicht laden.");
}


XML:
HTML:
<site>
<structure>
    <main id="services">
        <sub id="beratung,">
			<txt><![CDATA[hier steht der TEXT]]></txt>
        </sub>
   </main>
</structure>
</site>
 
Zuletzt bearbeitet:
XPath setzt unterhalb des Top Level Elementes an und Attribute gehören in "", in etwa so:
PHP:
$path ='//structure/main[@id="'.$mainid.'"]/sub[@id="'.$subid.'"]';
 
Super! Vielen Dank. Man merkt, ich bin dem XML noch nicht so mächtig!

Vieleicht kannst du mir noch einmal aushelfen?

Die auszugebenden Texte enthalten Absätze, die werden komplett irgnoriert.
Wie können diese mit ausgegeben werden?
 
Zuletzt bearbeitet:
Ich denke mal, dass white-space nur das Symptom behebt. Ich glaube, dass du einfach vergessen hast, die HTML-spezifischen Zeichen zu maskieren (htmlentities).
 
Zurück
Oben