php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.09.2010, 13:42  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard Mit XMLReader haarige XML auslesen

Hallo.
Als erstes vor ab:
Nikosch nicht gleich wieder als Trash markieren den Threat. Ich habe die Suchfunktion logischer weise der Forums benutzt. Aber die Leute, die vor 2 bzw. 1 Jahr den XMLReader benutzt haben, haben Funktionen benutzt, die jetzt nicht mehr zur Verfügung stehen.

Also folgendes:
Ich will eine recht nicht gut durchdachte XML Lesen! und danach die jeweiligen Werte einfach in eine Datenbank schreiben.
Vorerst mal ein Pic von der XML, damit Ihr euch ein Bild machen könnt.
http://img59.imageshack.us/img59/7067/unbenanntugh.jpg
So mir geht es darum, das OS, Servicepack, Benutzernamen etc.
auszulesen. Ergo die Value.

Mein Gedankengang ist also, Wenn ich den richtigen Title anspreche, kann ich mir auch den dazugehörigen Value ziehen. Allerdings kriege ich keinen Einzigen Wert ausgelesen.
Wollte mal testweise alle Values auslesen. habe dazu das hier geschrieben:
PHP-Code:
<?php
$dir 
'S:\software\externeSoftware\anwendungen\Netzwerk\aida32\report\XML';

$xmlreader = new XMLReader();
        
    if(!
$xmlreader->XML($dir))
    {
        echo 
'XML nicht vorhanden!!!';
    }
    else
        if (!
$xmlreader->open($dir.'\PC_SEELIG2.xml'))
                echo 
'Datei konnte nicht geöffnet werden';
            else
            {
                while (
$xmlreader->read())
                {
                    
$os = array($xmlreader->getAttribute('Value'));
                    
                    
print_r($os); echo "<br />";
                }
            }

?>
Die Ausgabe ist aber folgende:
Array ( [0] => )
Array ( [0] => )
Array ( [0] => )
etc. Allerdings keine Endlosschleife.

Kann mir da mal einer behilflich sein?
__________________

Geändert von ChrisB (16.09.2010 um 15:51 Uhr). Grund: Bildeinbindung entfernt wegen Überbreite
Sermon ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.09.2010, 14:17  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
PHP-Code:
$xmlreader->getAttribute('Value'
getAttribute() liefert nur Attribute (das sind die Dinger, die innerhalb eines Tags stehen: <xml_tag attr1="attribut val 1" attr2="...">[data]</xml_tag>

versuch mal readString() oder readInnerXML() um an [data] zu kommen
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 16.09.2010, 14:17  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

So ich bin ein wenig weiter gekommen.
PHP-Code:
while ($xmlreader->read())
{
    if (
$xmlreader->readString() == "Betriebssystem")
        echo 
"OS<br />";

Allerdings wird mir jetzt 4 mal das Wort OS rausgeschmissen, obwohl es nur 2 mal in dem XML Document vorkommt.

OK. readInnerXml löst das Problem.

Wie kriege ich aber jetzt denn dazugehörigen Wert raus.
Ich befinde mich ja, wenn ich das aufrufe:
PHP-Code:
if ($xmlreader->readInnerXml() == "Betriebssystem"
schon in dem, in meinem Fall, richtigem <Item></Item>
ich brauche nur den dazugehörigen Value.
Code:
<Item>
           <Title>Betriebssystem</Title>
           <Icon>38</Icon>
           <Value>Microsoft Windows 2000 Professional 5.0.2195 (Win2000 Retail)</Value>
</Item>
__________________

Geändert von Sermon (16.09.2010 um 14:32 Uhr).
Sermon ist offline  
Alt 16.09.2010, 15:39  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Ich frage mich gerade, ob mein problem überhaupt mit XMLReader lösbar ist. Ich habe in meiner XMl nur Elemente und kein stück Attribute.
Wenn ich mir die Funktionen so angucke werde ich da schwer mit zu kämpfen haben.
Womit sollte ich so eine XML auslesen? Könnt ihr was empfehlen?

EDIT:
Nehme alles zurück. Bin nochmals in mich gegangen und habe es doch gelöst bekommen.
Allerdings habe ich noch ein Problem.

Erstmal der richtige Code:
PHP-Code:
while ($xmlreader->read())
{
    if (
$xmlreader->readInnerXml() == "Betriebssystem")
    {
        
$xmlreader->next('Value');
        
$os $xmlreader->readInnerXml();
        echo 
$os;
    }

Jetzt ist es nur so, da das OS 2 mal vorkommt, bekomme ich es auch 2 mal ausgegeben.
Kann ich es irgendwie hinbekommen, dass das Lesen im Prinzip nach dem ersten finden aufhört?
__________________

Geändert von Sermon (16.09.2010 um 15:50 Uhr).
Sermon ist offline  
Alt 16.09.2010, 15:44  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Wenn du nur Bruchstücke brauchst, finde ich XPath am angenehmsten.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline  
Alt 20.09.2010, 14:22  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Mit Xpath komme ich gar net klar.
Gibt es denn ähnliche Parser für .txt dateien?
__________________
Sermon ist offline  
Alt 20.09.2010, 14:29  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.563
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

dann nimm halt die umständliche Methode ...

PHP-Code:
$erfolg=0;
while (
$xmlreader->read())
{
    if (
$xmlreader->readInnerXml() == "Betriebssystem")
    {
        
$xmlreader->next('Value');
        
$os $xmlreader->readInnerXml();
        echo 
$os;
        
$erfolg=1;
    }
    if (
$erfolg==1)
       break;

eagle275 ist offline  
Alt 20.09.2010, 15:55  
Erfahrener Benutzer
 
Benutzerbild von Sermon
 
Registriert seit: 04.03.2009
Beiträge: 231
Sermon befindet sich auf einem aufstrebenden Ast
Standard

ok. Erstmal danke an alle. Werde es shcon iwie hinbekommen
__________________
Sermon ist offline  
 


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
Parameter aus Url auslesen lzenz PHP Tipps 2010 6 27.05.2010 00:35
XML File mit XMLReader auslesen und als Excel-File abspeichern nordmann PHP Tipps 2010 2 26.02.2010 18:29
[Erledigt] preparedStatement auslesen funktioniert nicht ?! Raidri PHP Tipps 2009 11 02.11.2009 09:21
[Erledigt] Anzahl der Zeilen auslesen ( MySQL ) errox Datenbanken 13 18.02.2009 16:07
Scriptsuche Formular auslesen und verschicken Atsinganos Scriptbörse 8 21.01.2009 12:54
Ordner auslesen und während des auslesen sortieren Dooki PHP Tipps 2008 6 14.05.2008 17:50
Vom Browser verschickte Daten auslesen und anzeigen? andy32 PHP Tipps 2008 3 22.08.2007 18:33
[Erledigt] gelöst: Tabelle auslesen -&amp;amp;amp;amp;gt; Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
Cookies auslesen HSFighter PHP Tipps 2007 2 19.11.2005 14:56
[Erledigt] bestimmte ID's auslesen als array PHP Tipps 2007 2 31.10.2005 20:23
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
alle Verzeichnisse sortiert auslesen PHP Tipps 2005-2 7 17.07.2005 10:20
auslesen und nochmals auslesen?! $$$ ThiKool $$$ PHP Tipps 2005 23 10.03.2005 19:43
[Erledigt] Daten von anderer Homepage auslesen PHP Tipps 2004-2 5 02.12.2004 18:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php xmlreader, php xml auslesen, xmlreader php, php xml reader, xml auslesen php, http://www.php.de/php-einsteiger/71904-mit-xmlreader-haarige-xml-auslesen.html, php xmlreader example, php xmlreader beispiel, php xmlreader tutorial, php xml reader tutorial, php xml lesen, php xmlreader readinnerxml, xmlreader php beispiel, php xmlreader getattribute, new xmlreader(); tutorial, xml reader php, xmlreader php tutorial, xmlreader::readinnerxml php, xmlreader example php, xmlreader tutorial php

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:16 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