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)
Php Xml [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Php Xml


 
e34jenser
12-05-2004, 21:14 
 
Hallo, habe folgendes Problem:

Ich habe eine Variable mit XML-Inhalt. Nun benötige ich aus dem XML-Inhalt die Daten zwischen <Part><content> und </content></Part>. <Part> und </Part> kommen in der Regel 1 bis 3mal vor.

Ich hoffe Ihr könnt mir helfen, denn ich habe noch nie etwas mit XML programmiert.

Ich danke euch schon einmal im Vorraus

So Sieht der XML-Inhalt in etwa aus:

<message>

<part>
<content>
Hier steht drin, was ich benötige (1)
</content>
</part>

<part>
<content>
Hier steht drin, was ich benötige (2)
</content>
</part>
<part>
<content>
Hier steht drin, was ich benötige (3)
</content>
</part>

</message>

 
Uzimaster
12-05-2004, 21:46 
 
-> http://de3.php.net/xml

Mit folgendem Code könnte man das realisieren:

foo.xml

<?xml version="1.0"?>
<message>
<part>
<content>
Hier steht drin, was ich benötige (1)
</content>
</part>
<part>
<content>
Hier steht drin, was ich benötige (2)
</content>
</part>
<part>
<content>
Hier steht drin, was ich benötige (3)
</content>
</part>
</message>

foo_parse.php

<?php
$xml_filename="foo.xml";
$xml_parser_handle = xml_parser_create();

if(!($parse_handle = fopen($xml_filename, 'r'))) {
die("Fehler! Datei $xml_filename nicht gefunden!");
}

while($xml_data = fread($parse_handle, 4096))
{
if(!xml_parse_into_struct($xml_parser_handle, $xml_data, $werte, $index)) {
die(sprintf('XML Error: %s at Line %d',
xml_error_string(xml_get_error_code($xml_parser_handle)),
xml_get_current_line_number($xml_parser_handle)));
}
}
xml_parser_free($xml_parser_handle);

foreach($index['CONTENT'] as $content) {
echo $werte[$content]['value'].'<br>';
}
?>

 
e34jenser
12-05-2004, 22:18 
 
Danke für das Script. Ein ähnliches Script hatte ich auch schon und habe die Fehlermeldung "XML Error: junk after document element at Line 123" bekommen. Auch bei Deinem Script ist das so. Woran kann es denn liegen?

 
Nezzar
13-05-2004, 10:08 
 
Falsches encoding vielleicht. Probier mal UTF-8

 
e34jenser
13-05-2004, 11:36 
 
Hi, den XML-String kann ich nicht verändern, den bekomme ich übermittelt und der ist schon UTF8. Hoffe es hat noch jemand eine Idee...

 
BurninLeo
14-11-2005, 00:14 
 
Besser spät als nie für alle, die hier über Google landen:


Kann es sein, dass du das den Parser doppelt verwendest - also zuerst eine Datei mit xml_parse_sonstwas($parser) einliest und dann noch eine?

Die Parser-Ressource speichert nämlich vorherige Eingaben - und wenn man sie nicht zerstört (xml_parser_free) und neu erstellt dann kommt's zu genau diesem Fehler.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:14 Uhr.