php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.05.2005, 09:21  
Benutzer
 
Registriert seit: 29.04.2005
Beiträge: 32
Tigermoon
Tigermoon eine Nachricht über ICQ schicken Tigermoon eine Nachricht über MSN schicken Tigermoon eine Nachricht über Yahoo! schicken
Standard xml Parser mit php und sqlanweisung

Guten Morgen,

Habe ein kleines problem,
mein xmlparser parst sachen die für mich unverständlich sind.

Ich bräuchte da mal hilfe
Ich möchte eine xml datei auslesen und dann die ausgelesenen daten mit einem sql weiterverarbeiten. Ich lesen die xml datei mit meinem parser in ein array aus aber der inhalt meines array verschiebt sich immer also weiß ich nie wo welcher eintrag steht.

Frage: Warum ist das so? und was kann ich dagegen machen?
Bedingung: Ich MUSS wissen was wo steht, und es können immer andere sachen darin stehen,
Anmerkung: Die Art der xml datei ist immer gleich und ich verwenden php 4

Meine XML-Datei
Code:
<?xml version="1.0" encoding="UTF-8"?>
<WOCHENBERICHT>
<KW>20</KW>
<JAHR>2005</JAHR>
<EINTRAEGE>
<MONTAG><TEXT><![CDATA[Montag]]></TEXT><STUNDEN>3</STUNDEN></MONTAG>
<DIENSTAG><TEXT><![CDATA[]]></TEXT><STUNDEN>7</STUNDEN></DIENSTAG>
<MITTWOCH><TEXT><![CDATA[Mittwoch]]></TEXT><STUNDEN>6</STUNDEN></MITTWOCH>
<DONNERSTAG><TEXT><![CDATA[Donnerstag]]></TEXT><STUNDEN>7</STUNDEN></DONNERSTAG>
<FREITAG><TEXT><![CDATA[Freitag]]></TEXT><STUNDEN>6,5</STUNDEN></FREITAG>
</EINTRAEGE>
</WOCHENBERICHT>
Der code mit dem ich auslese
Code:
        global $inhalt;

        function cdata($parser, $element_inhalt)
        {
            global $inhalt;
            // Der normale Text wird an $inhalt angehängt
            $inhalt[] .= $element_inhalt;
        }

        $xmlFile = file_get_contents($datei_name);
        $parser = xml_parser_create("UTF-8");
        xml_set_character_data_handler($parser, "cdata");

        xml_parse($parser, $xmlFile);
        xml_parser_free($parser);

 // wenn kw und jahr fehlen -> fehler       
if( $inhalt[1] == 0 or $inhalt[3] == 0)
        {
            echo "Dies ist keine gültige Datei";
        }
        else
        {
            //Arrayinhalt in Gedanken auf Variablen legen
            // stimmt aber nicht da es sich immer verschiebt

            //  inhalt[1] => Kalenderwoche
            //  inhalt[3] => Jahr
            //  inhalt[6] => Text von Montag
            //  inhalt[7] => Stunden von Montag
            //  inhalt[8] => Text von Dienstag
            //  inhalt[9] => Stunden von Dienstag
            //  inhalt[10] => Text von Mittwoch
            //  inhalt[10] => Stunden von Mittwoch
            //  inhalt[12] => Text von Donnerstag
            //  inhalt[13] => Stunden von Donnerstag
            //  inhalt[14] => Text von Freitag
            //  inhalt[15] => Stunden von Freitag

            $mysql_query = "insert into ".$name_der_datenbank."
                                ( ".$kalenderwoche.",".$jahr.", ".$einsatzort.",
                                ".$montag_text.", ".$montag_stunden.",
                                ".$dienstag_text.", ".$dienstag_stunden.",
                                ".$mittwoch_text.", ".$mittwoch_stunden.",
                                ".$donnerstag_text.", ".$donnerstag_stunden.",
                                ".$freitag_text.", ".$freitag_stunden.") ".
                            "values ('".$inhalt[1]."','".$inhalt[3]."', 'ASW',
                                '".$inhalt[6]."','".$inhalt[7]."','".$inhalt[8]."','".$inhalt[9]."',
                                '".$inhalt[10]."','".$inhalt[11]."','".$inhalt[12]."','".$inhalt[13]."',
                                '".$inhalt[14]."','".$inhalt[15]."');";


            echo $mysql_query;
            echo "
";

            mysql_query($mysql_query);
            echo ("Datei wurde erfolgreich eingetragen");
        }
Hätte jemand eine Idee wie ich den inhalt des xml-tags auf eine variable lege die so heißt wie der xml-tag aus dem sie stammt?



Vielen Dank
Stephie
Tigermoon ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.05.2005, 09:24  
Gast
 
Beiträge: n/a
Standard

Zitat:
Hätte jemand eine Idee wie ich den inhalt des xml-tags auf eine variable lege die so heißt wie der xml-tag aus dem sie stammt?
Wäre prinzipiell und mit PHP5 (simpleXML) kein Thema.

Büschen Lesefutter, damit Du siehst, wie simpel simpleXML und PHP5 ist:
http://test.php-help.info/rdf-1/
http://test.php-help.info/xml-3/
http://test.php-help.info/xml-5/
 
Alt 19.05.2005, 11:00  
Benutzer
 
Registriert seit: 29.04.2005
Beiträge: 32
Tigermoon
Tigermoon eine Nachricht über ICQ schicken Tigermoon eine Nachricht über MSN schicken Tigermoon eine Nachricht über Yahoo! schicken
Standard

könntest du mir vielleicht mal xml_3 erklären?

was bedeutet...

PHP-Code:
<?php

$fn 
'./produkt.xml';

$xml simplexml_load_string(file_get_contents($fn));

$array = array();

$keys = array(    'ArtNumber'
                
'Title'
                
'Description_short',
                
'DisplayPrice',
                
'Img_url',
                
'DeepLink1',
                
'ProductCategoryID',
                
'ProductCategoryName');

foreach (
$xml->record as $record
{
    echo 
'<u>record num=' $record->attributes() . '</u>
'
;
    
reset($keys);
    foreach(
$keys as $element => $value)
    {
        echo 
'[b]' $value.'[/b]='.utf8_decode($record->$value).'
'
;
    }
    echo 
'<hr>';
}


?>
...foreach ($xml->record as $record)
Was ist record?

Stephie
Tigermoon ist offline  
Alt 19.05.2005, 11:24  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Tigermoon
könntest du mir vielleicht mal xml_3 erklären?

...foreach ($xml->record as $record)
Was ist record?
Das ist ein bestimmter Knoten aus dem XML Dokument.

Guck Dir einfach mal die Struktur an. Entweder mit IE oder damit:
PHP-Code:
<?php

# PHP5

print '<pre>';
print_r($xml);
print 
'</pre>';
?>
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
HTML Parser Zabimaru PHP Tipps 2008 3 14.04.2008 15:55
Template und Parser... was ist mit Abfrageresultat > 1?? reimondo PHP Tipps 2006 5 05.04.2006 00:16
foreach in parser Klasse Simon9990 PHP Tipps 2006 10 17.01.2006 14:23
BBCode Parser Mutatos PHP Tipps 2006 1 05.01.2006 12:19
rss parser, der alle rss-versionen lesen kann janni PHP Tipps 2007 1 22.12.2005 10:15
[Erledigt] Parser findet Handler nicht PHP-Fortgeschrittene 6 14.11.2005 17:12
Wiki Parser Klassen, etc. gesucht. PHP Tipps 2005 6 05.05.2005 15:54
[Erledigt] xml parser: problem mit großen Tag Inhalten PHP-Fortgeschrittene 2 14.04.2005 13:07
[Erledigt] Object innerhalb einer XML Parser Funktion deklarieren PHP-Fortgeschrittene 0 10.12.2004 14:40
Probleme mit XMl Parser (Expat) PHP Tipps 2004 1 16.10.2004 22:49
[Erledigt] Template Parser PHP-Fortgeschrittene 9 06.10.2004 23:04
Template Parser PHP Tipps 2004 10 23.07.2004 15:35
Template Parser Script Suckd PHP-Fortgeschrittene 2 11.07.2004 17:20
Suche Template Parser - Muss PHP Datein includen können Schaelle PHP Tipps 2004 0 01.07.2004 20:48
[Erledigt] parser PHP Tipps 2004 2 01.07.2004 10:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fehlermeldung xml parser unverständlich, xml xml <record>, php xml_parse weiterverarbeiten

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:57 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.