Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PHP XMLReader

Frage Entwicklung PHP

Mitglied: pascallantzsch

pascallantzsch (Level 1) - Jetzt verbinden

27.09.2014 um 00:49 Uhr, 1089 Aufrufe, 4 Kommentare, 1 Danke

Hallo,
habe jetzt seit Stunden das Internet durchsucht, mir Tutorials zu XMLREADER und XML-LINE angesehen und durchprobiert, aber das passende ist nicht dabei..

ich habe eine Index.xml und möchte dort einen wert auslesen, dieser wert ändert sich öfter mal, aber steht immer in der zweiten Zeile in folgendem Format:
<IndexFile index="ordner:testfile.zip" version="12" />
und ich möchte nur den String "testfile.zip", der sich wie gesagt immer ändert.
Diesen String nehme ich dann, welcher für eine Datei steht, die ich dann runterladen kann...
und muss dann in dieser Datei aus Zeile 8 nach dem selben Muster vorgehen, allerdings benötige ich dort einmal den string "ordner" und einmal den String "testfile2.zip (heißt ja dann anders)
Ich habe das Problem bereits mit batch auf dem pc gelöst, will dies aber nun per php Serverseitig ablaufen lassen.
Bin für jede Konstruktive Hilfe dankbar


Hier noch mein Batch Code:
for /f skip^=1^ tokens^=2^ delims^=^" %%i in ('type "Index.xml"') do (
if not defined filename1 for /f "tokens=2 delims=:" %%j in ("%%i") do (
set "filename1=%%j"
set "basename1=%%~nj"
setlocal EnableDelayedExpansion
>"neue1.txt" echo !filename1!

endlocal
)
)
for /f skip^=7^ tokens^=2^ delims^=^" %%i in ('type "%basename1%.xml"') do (
if not defined filename2 for /f "tokens=2 delims=:" %%j in ("%%i") do (
set "filename2=%%j"
set "basename2=%%~nj"
setlocal EnableDelayedExpansion
>"neue2.txt" echo !filename2!
endlocal
)
)
for /f skip^=7^ tokens^=2^ delims^=^" %%i in ('type "%basename1%.xml"') do (
if not defined filename3 for /f "tokens=1 delims=:" %%j in ("%%i") do (
set "filename3=%%j"
set "basename3=%%~nj"
setlocal EnableDelayedExpansion
>"neue3.txt" echo !filename3!
endlocal
)
)


LG
Mitglied: 114757
27.09.2014, aktualisiert um 10:04 Uhr
So aus der lameng ohne die Struktur der XML Files zu kennen ungetestet etwa so:

01.
<?php 
02.
$xml = simplexml_load_file('http://www.domain.de/data.xml'); 
03.
$result = $xml->xpath('//IndexFile[@index]'); 
04.
if (count($result) > 0){ 
05.
	$attrValue = $result[0]['index']; 
06.
        $arr = preg_split('/:/',$attrValue); 
07.
        $zipName = $arr[1]; 
08.
        // Download Zipfile 
09.
        file_put_contents("temp.zip", fopen("http://someurl/$zipName", 'r')); 
10.
 
11.
        $zip = new ZipArchive; 
12.
        if ($zip->open('temp.zip') === TRUE) { 
13.
            $zip->extractTo('/temp/'); 
14.
            $zip->close(); 
15.
            $basename = basename($zipName,'.zip'); 
16.
            $xml2 = simplexml_load_file('/temp/' + $basename + '.xml'); 
17.
            $result2 = $xml->xpath('//IndexFile[@index]'); 
18.
            if (count($result2) > 0){ 
19.
                 $attrValue = $result[0]['index']; 
20.
                 $arr = preg_split('/:/',$attrValue); 
21.
                 $ordner = $arr[0]; 
22.
                 $filename = $arr[1]; 
23.
                 echo 'Der Ordner lautet:' + $ordner + ' und der Dateiname ' + $filename
24.
25.
        } else
26.
            echo 'Konnte ZIPFile nicht extrahieren!'
27.
28.
 
29.
}else
30.
	echo("Keine Element gefunden"); 
31.
32.
 
33.
?>
Gruß jodel32
Bitte warten ..
Mitglied: pascallantzsch
27.09.2014 um 10:23 Uhr
ok, ich teste mal und geb dann ein echo ;-D
Bitte warten ..
Mitglied: pascallantzsch
27.09.2014 um 17:39 Uhr
Ok, wüsste gerne was ich hier angeben muss
$result = $xml->xpath(' ;IndexFile[@index]');
erhalte folgende Fehlermeldung als Ausgabe
Fatal error: Call to a member function xpath() on a non-object in /home/bla.php on line 18 (in line 18 steht der Code)

Noch zur Klärung
hier: $xml = simplexml_load_file('http:
www.domain.de/data.xml'); gebe ich den Ort ein, wo die xml liegt

was bedeutet das: file_put_contents("temp.zip", fopen("http://someurl/"$zipName", 'r'));

Danke schonmal
Bitte warten ..
Mitglied: 114757
27.09.2014, aktualisiert um 18:02 Uhr
Zitat von pascallantzsch:

Ok, wüsste gerne was ich hier angeben muss
$result = $xml->xpath()
das ist eine XPath Query. Diese selektiert das Element das du haben möchtest IndexFile ist der Name des Elements und [@index] bedeutet das das Element ein Attribut mit dem Namen index haben muss.
Siehe:

erhalte folgende Fehlermeldung als Ausgabe
Fatal error: Call to a member function xpath() on a non-object in /home/bla.php on line 18 (in line 18 steht der Code)
dann konnte er die XML-Datei nicht abrufen. URL prüfen.

Noch zur Klärung
hier: $xml = simplexml_load_file('http://www.domain.de/data.xml'"); gebe ich den Ort ein, wo die xml liegt
ja, dort wo sie aus dem Internet abgerufen wird.
was bedeutet das: file_put_contents("temp.zip", fopen("http://someurl/"$zipName", 'r'));
das läd das ZIP-File mit dem extrahierten Namen von einer URL runter.

Gruß jodel32
Bitte warten ..
Ähnliche Inhalte
PHP
PHP 5.3 nach PHP 5.6 portieren (5)

Frage von nippon-tussi zum Thema PHP ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Ubuntu
gelöst PHP 5.6 und PHP7 paralell (10)

Frage von ClepToManix zum Thema Ubuntu ...

PHP
gelöst PHP Version und Joomla aktualisieren (2)

Frage von Leo-le zum Thema PHP ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
gelöst Leiten "dumme" Switches VLAN-Tags mit durch? (26)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (15)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Router & Routing
FTTH bzw FTTB Router (13)

Frage von ukulele-7 zum Thema Router & Routing ...