- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-06-2005, 18:52
Bluster
 Newbie
Links : Onlinestatus : Bluster ist offline
Registriert seit: Jun 2005
Beiträge: 4
Bluster ist zur Zeit noch ein unbeschriebenes Blatt
Standard Suche XMl Parsen

Hi
Ich versuche mich grade im XML verarbeiten
und zwar habe ich vor, XML-Dateien wie diese auszulesen, am besten in verschachtelte arrays zu packen und dann nach und nach aufzudröseln um sie dann z.B. in einer Datenbank zu speichern (man kann natürlich selber XML-Dateien angeben )
das klappt bis jetzt auch ganz gut, abgesehen davon, dass in der XML datei für manche einträge "id" attribute vergeben wurden. Dadurch nimmt mein script aber nur den letzten eintrag aus dieser gruppe an
Code:
<entry id="0">
  <count>134234</count> 
  <name>Test1</name> 
</entry>
<entry id="1">
  <count>24234</count> 
  <name>Test2</name> 
</entry>
meine funktion bis jetzt:
PHP-Code:
        function xml2array($text) {
           
$reg_exp '/<(.*?)>(.*?)<\/\\1>/s';
           
preg_match_all($reg_exp$text$match);
           foreach (
$match[1] as $key=>$val) {
               if ( 
preg_match($reg_exp$match[2][$key]) )
                     {
                   
$array[$val][] = xml2array($match[2][$key]);
               }
                     else
                     {
                   
$array[$val] = $match[2][$key];
               }
           }
           return 
$array;
        } 
Mit Zitat antworten
  #2 (permalink)  
Alt 11-06-2005, 18:53
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Klingt so weit alles ganz nett, aber was willst du eigentlich?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 11-06-2005, 19:52
Bluster
 Newbie
Links : Onlinestatus : Bluster ist offline
Registriert seit: Jun 2005
Beiträge: 4
Bluster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich bekomme das:
Array ( [0] => Array ( [count] => 24234 [name] => Test2 ) )
Will aber in etwa folgendes:
Array ( [0] => Array ( [count] => 134234 [name] => Test1 ) [1] => Array ( [count] => 24234 [name] => Test2 ) )
weiß aber nicht wie
grundlage is halt der code da oben
Mit Zitat antworten
  #4 (permalink)  
Alt 11-06-2005, 20:03
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Dann zeig mal bitte deine Ansätze.

Ein Scriptgesuch ist das nämlich nicht. *verschieb*
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 11-06-2005, 21:54
Bluster
 Newbie
Links : Onlinestatus : Bluster ist offline
Registriert seit: Jun 2005
Beiträge: 4
Bluster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also, ich hab folgenden ansatz (ziemlich ausgereift eigentlich)
PHP-Code:
function fetchUrlWithoutHanging($url)
{
for 
feed before displaying page without feed
$numberOfSeconds
=4;

error_reporting(0);
$url str_replace("http://","",$url);
$urlComponents explode("/",$url);
$domain $urlComponents[0];
$resourcePath str_replace($domain,"",$url);
$socketConnection fsockopen($domain80$errno$errstr$numberOfSeconds);

if (!
$socketConnection)
{
Web site
print("<!-- Network error: $errstr ($errno) -->");
}
else {
$xml '';
 
fputs($socketConnection"GET /$resourcePath HTTP/1.0\r\nUser-Agent: POWER PHP (Mozilla Compatible)\r\n\r\n");
while (!
feof($socketConnection))
{
    
$xml .= fgets($socketConnection128);
}
fclose ($socketConnection);
}
return(
$xml);

}
        function 
xml2array($text) {
           
$reg_exp '/<(.*?)>(.*?)<\/\\1>/s';
           
preg_match_all($reg_exp$text$match);
           foreach (
$match[1] as $key=>$val) {
               if ( 
preg_match($reg_exp$match[2][$key]) )
                     {
                   
$array[$val][] = xml2array($match[2][$key]);
               }
                     else
                     {
                   
$array[$val] = $match[2][$key];
               }
           }
           return 
$array;
        }
$array xml2array(fetchUrlWithoutHanging($_POST[xml])); 
als $_POST[xml] wird folgende URL übertragen:
http://report.fatal-vortex.de/report...8a762.34748954
Mit Zitat antworten
  #6 (permalink)  
Alt 11-06-2005, 22:03
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

PHP-Code:
function xml2array($text) {
  
$p xml_parser_create();
  
xml_parse_into_struct($p$text$vals$tags);
  
xml_parser_free($p);

  foreach (
$tags['NAME'] as $k=>$v) {
    
$out[$k] = array(
            
'name' => $vals[$v]['value'],
            
'count' => $vals[$tags['COUNT'][$k]]['value']
        );
  }
  
  return 
$out;

EDIT:
bezieht sich auf dein Beispiel, foreach-Schleife muß auf deine XML-Struktur angepasst werden
Mit Zitat antworten
  #7 (permalink)  
Alt 13-06-2005, 15:15
Bluster
 Newbie
Links : Onlinestatus : Bluster ist offline
Registriert seit: Jun 2005
Beiträge: 4
Bluster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hm, ja, das is ja soweit schon ganz gut
das problem is: das da ganz oben is ja nur ein auszug
der link in meinem letzen beitrag führt zur original-datei, und sind die dann unterschiedlich
manche mit, manche ohne id
hier nochma der link
und: nein, ich kann die xml-datei nich ändern, bevor das einer fragt.
das is ja grad mein problem
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:36 Uhr.