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)
Problem mit XML [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit XML


 
hottemp
02-08-2002, 17:49 
 
Ich lasse mir News aus der Datenbank automatisch per PHP in das XML-Format als RDF/RSS formatieren. Der Output sieht in der Datei dann folgendermaßen aus:


<?xml version="1.0"?><rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">

<channel>
<title>Contentpapst - Webnews</title>
<link>http://www.contentpapst.de</link>
<description>...</description>
<language>de</language>
<copyright>Copyright 2002, sandoba.de medien agentur</copyright>
<email>contact@sandoba.de</email>
</channel>

<item>
<title>es ist bald wieder weihnachten!</title>
<link>http://www.testurl.de/modules_news.php?mode=detail&sid=45</link>
<description>...</description>
</item>

</rdf:RDF>


Das Problem ist, dass dann im Browser folgender Fehler angezeigt wird:


Die XML-Seite kann nicht angezeigt werden
Die XML-Eingabe kann nicht angezeigt werden, wenn Stylesheet XSL verwendet wird. Beheben Sie den Fehler und klicken Sie dann auf Aktualisieren, oder wiederholen Sie den Vorgang später.

--------------------------------------------------------------------------------

Ein Semikolon wurde erwartet. Fehler beim Bearbeiten der Ressource 'http://localhost/test/newsfeed.xml'. Zeile 45, Position 66

<link>http://www.contentpapst.de/modules_news.php?mode=detail&sid=45</link>
-----------------------------------------------------------------^


Woran liegt das? Ein Semikolon muss da ganz bestimmt nicht hin. Bei anderen XML-Dateien ist dies auch kein Problem. Ich bin ein wenig ratlos. :confused:

 
Blaster
12-08-2002, 17:40 
 
Hi,

wow! RDF in diesem Form?! - Respekt, Respekt! :grin:

Trotzdem verstehe ich den NS nicht.
xmlns="http://my.netscape.com/rdf/simple/0.9/">
Was macht der?! - Müsste es nicht
<Channel ID="Nescape" xmlns="urn:http://my.netscape.com/rdf/simple/0.9/">
heisen oder so?!

Da Du keine RDF-Schema resource angibst musst Du nicht deklarieren?!
z:B.:

<rdfs.Class rdf:ID="Channel" xmlns="'http://localhost/test/newsfeed.xml'>
<rdf: Description about="Channel">
<title>Contentpapst - Webnews</title>
<link>http://www.contentpapst.de</link>
<description>...</description>
<language>de</language>
<copyright>Copyright 2002, sandoba.de medien agentur</copyright>
<email>contact@sandoba.de</email>
</rdf: Description>
</rdf:RDF>


Viele Fragen für ein Outsider :)

Blaster

 
hottemp
12-08-2002, 18:06 
 
Habs jetzt folgendermaßen gelöst:


<?xml version="1.0"?><rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">

<channel>
<title>Contentpapst - Webnews</title>
<link>URL</link>
<description>...</description>
<language>de</language>
<copyright>Copyright 2002, sandoba.de medien agentur</copyright>
<email>contact@sandoba.de</email>
</channel>

<item>
<title>TITEL</title>
<link>LINK</link>
<description>BESCHREIBUNG</description>

</item>

</rdf:RDF>


Und vorher Wechsel der Daten mittels:



function changename($text) {
$text = str_replace("Ä", "Ae", $text);
$text = str_replace("ä", "ae", $text);
$text = str_replace("Ö", "Oe", $text);
$text = str_replace("ö", "oe", $text);
$text = str_replace("Ü", "Ue", $text);
$text = str_replace("ü", "ue", $text);
$text = str_replace("ß", "ss", $text);
return $text;
}



Funktioniert alles. Kann man natürlich auch mit den richtigen Zeichencodes lösen. Der Output ist für CMS mit "All-Inclusive-Funktionen". :D Da muss natürlich auch der Datenaustausch mit den verschiedensten Sprachen möglich sein. Mit Schema oder DTD wollte ich bei dem Script nicht erst anfangen.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:35 Uhr.