Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
DOM/XML in PHP5 [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
DOM/XML in PHP5


 
MaxPayne
12-02-2005, 12:04 
 
Tag,

hab PHP 5.0.3 ohne --with-dom bzw. --with-dom-xslt beim configure-Skript kompiliert. Jetzt gibt phpinfo() trotzdem folgendes aus:


dom
DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.6.8
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled


ein Aufruf von domxml_open_file() gibt "...function undefined aus". Also es is mir schon klar, dass ich die entsprechenden Optionen hätte angeben müssen, aber warum zeigt mit die Ausgabe von phpinfo() trotzdem ein aktiviertes DOM/XML ? Damit is also was anderes gemeint, aber was?

edit Ich hab jetz PHP5 mit den configure-Optionen --with-dom und --with-libxml-dir=/pfad nochma neu gebaut....der kennt die Funktion immer noch nicht....was das denn?

 
Nezzar
14-02-2005, 11:26 
 
domxml_open_file() ist aus der alten (PHP4) DOM-API.

Folgendes wäre "richtiger":

$DOM = new DOMDocument();
$DOM->load("datei.xml");

 
MaxPayne
14-02-2005, 16:26 
 
Jo, ha ich jetzt auch endlich gemerkt. Leider kann ich die DOM-API nzw. generell die XML-Funktionen in PHP nicht wirklich nutzen, da ich zum Beispiel folgende XML-Files habe:

<?xml version="1.0" encoding="ISO-8859-15" standalone="yes" ?>
<root>

<element>
ein bissl text und hier <tag attribute="value" /> und da <tag attribute="value" /> ein xml-tag mitten drin
</element>

</root>

Das Problem ist, dass der XML-Parser, wenn ich den Knoten von <element> ansprechen will, die Tags im Text entfernt. Die brauche ich aber, weil die dann durch einen weiteren, von mir geschrieben Parser gejagt werden sollen.

 
Nezzar
14-02-2005, 18:36 
 
Wie sprichtst du den Inhalt des Knotens denn an? Per Knoten.textContent? Das "stript" die XML-Knoten immer. Du müsstest sowas wie das hier benutzen:

$XPath = new DOMXPath($DeinDomDoc);

$Knoten = $XPath->query("TagName", $DerKnotenInDemGesuchtWerdenSoll);
for($i = 0; $i < $Knoten->length; i++)
{
echo $Knoten->item($i)->getAttribute('attribute');
}



Übrigens: http://de2.php.net/dom

 
MaxPayne
14-02-2005, 20:02 
 
Hm, ok, danke erstmal, das wäre jetzt ne Möglichkeit auf die Tags innerhalb des TextContents zuzugreifen. Gibts auuch ne Möglichkeit den Originaltext den gesamten Knoten (also nicht das Element, was ihn umschließt, sondern der Textinhalt [= Knoten laut DOM?]) unstripped zu bekommen? Das wär nämlich genau das, was ich bräuchte.

 
Nezzar
15-02-2005, 15:29 
 
Jup, das geht so:

$TagContent = $DOMDoc->saveXML($KnotenDenDuAuslesenWillst);

 
MaxPayne
15-02-2005, 16:49 
 
Ahh, genau das brauch ich. Besten Dank ;)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:02 Uhr.