Ich habe da eine datei.xml und die sieht auch sehr konform aus:
Alles anzeigen
Diese Datei möchte ich mit dem Script in der Datei import.php analysieren und verarbeiten:
Alles anzeigen
da kommt dann der Fehler:
Cannot open xml document:
und in der phplog steht: PHP Fatal error: Cannot use string offset as an array in C:\apachefriends\htdocs\dev\import1.php on line 16
ist die xml Datei vielleicht doch nicht konform? Oder was habe ich hier übersehn?
Liebe Grüße
kingluui
Quellcode
- <?xml version="1.0" encoding="utf-8"?>
- <ItemList>
- <To>2</To>
- <From>Main</From>
- <MessageNo>14</MessageNo>
- <ReceivedNo>0</ReceivedNo>
- <ArtikelStatus>
- <Filter>
- <Period>2009-02-13T15:12:26</Period>
- <Artikel>77f3d73a-f922-11dd-a163-001bfcdc5b9f</Artikel>
- <Status>1</Status>
- <JobID>17200003</JobID>
- <Beginn>2009-02-23T00:00:00</Beginn>
- <Ende>2009-02-23T00:00:00</Ende>
- </Filter>
- <Records>
- <Record>
- <Period>2009-02-13T15:12:26</Period>
- <Artikel>77f3d73a-f922-11dd-a163-001bfcdc5b9f</Artikel>
- <Status>1</Status>
- <JobID>17200003</JobID>
- <Beginn>2009-02-23T00:00:00</Beginn>
- <Ende>2009-02-23T00:00:00</Ende>
- <Menge>1</Menge>
- <Bestellnummer>0</Bestellnummer>
- <Bestelldatum>0001-01-01T00:00:00</Bestelldatum>
- <Bestatigtdatum>0001-01-01T00:00:00</Bestatigtdatum>
- <ArtikelNr>170001000111004</ArtikelNr>
- </Record>
- </Records>
- </ArtikelStatus>
- </ItemList>
Diese Datei möchte ich mit dem Script in der Datei import.php analysieren und verarbeiten:
Quellcode
- <?php
- set_time_limit(0);
- require_once 'simplexml.class.php';
- $file = 'datei.xml';
- $sxml = new simplexml;
- $data = $sxml->xml_load_file($file,"array");
- echo $data;
- include 'dbconnect.php';
- foreach ($data["ItemList"]["ArtikelStatus"] as $ArtikelStatus)
- {
- echo $ArtikelStatus;
- $Status = (int)trim($ArtikelStatus["Records"]["Record"]["Status"]);
- $JobNr = (int)trim($ArtikelStatus["Records"]["Record"]["JobID"]);
- $Menge = (int)trim($ArtikelStatus["Records"]["Record"]["Menge"]);
- $ArtikelNr = (int)trim($ArtikelStatus["Records"]["Record"]["ArtikelNr"]);
- $BeginnDate = $ArtikelStatus["Records"]["Record"]["Beginn"];
- $bestandNr = (int) substr($ArtikelNr, 1 , 6);
- $categoryNr = (int) substr($ArtikelNr, 7 , 6);
- $artikelNr = (int) substr($ArtikelNr, 13 , 6);
- $bestandNr = str_pad($bestandNr,6,"0",STR_PAD_LEFT);
- $categoryNr = str_pad($categoryNr,6,"0",STR_PAD_LEFT);
- $artikelNr = str_pad($artikelNr,3,"0",STR_PAD_LEFT);
- $BeginnJahr = substr($BeginnDate, 1 , 4);
- $BeginnMonat = substr($BeginnDate, 6 , 2);
- $BeginnTag = substr($BeginnDate, 9 , 2);
- $dateshort = $BeginnJahr.$BeginnMonat.$BeginnTag;
- $sql = "UPDATE calendar SET status = '$Status', menge = '$Menge' WHERE bestandNr = '$bestandNr' AND categoryNr = '$categoryNr' AND artikelNr = '$artikelNr' AND dateshort = '$dateshort'";
- mysql_query($sql) or die(mysql_error());
- }
- echo "IMPORT 1 ERFOLGREICH!<br>";
- mysql_close();
- ?>
da kommt dann der Fehler:
Cannot open xml document:
und in der phplog steht: PHP Fatal error: Cannot use string offset as an array in C:\apachefriends\htdocs\dev\import1.php on line 16
ist die xml Datei vielleicht doch nicht konform? Oder was habe ich hier übersehn?
Liebe Grüße
kingluui
Man muss nicht wissen wie es geht, man muss nur wissen wo es steht! Natürlich bei easy-coding de