Ich suche nach einer Möglichkeit eine xml Datei auszulesen, die mehrere Segmente gleichen Names enthält. Hier ein Beispiel:
Wie zu erkennen ist, kommen <E1BPADR1> mehrfach vor und besitzen auch keine Attribute, anhand derer man sie unterscheiden könnte. Wie kann ich die einzelnen Segmente ansprechen und auslesen?
Bisher habe ich mit simpleXML versucht eine Lösung zu finden. Hier ein Beispiel:
Code:
<SHP_OBDLV_SAVE_REPLICA02> <IDOC BEGIN="1"> <E1SHP_OBDLV_SAVE_REPLICA SEGMENT="1"> <E1BPADR1 SEGMENT="1"> <ADDR_NO>2001192521</ADDR_NO> <NAME>Bla Bla 1</NAME> <CITY>München</CITY> <POSTL_COD1>80922</POSTL_COD1> <STREET>Bahnhofstraße</STREET> <HOUSE_NO>5</HOUSE_NO> <COUNTRY>DE</COUNTRY> <LANGU>D</LANGU> <REGION>05</REGION> <TIME_ZONE>CET</TIME_ZONE> <TRANSPZONE>R08</TRANSPZONE> <E1BPADR11 SEGMENT="1"> <COUNTRYISO>DE</COUNTRYISO> <LANGU_ISO>DE</LANGU_ISO> <LANGU_CR>D</LANGU_CR> <LANGUCRISO>DE</LANGUCRISO> </E1BPADR11> </E1BPADR1> <E1BPADR1 SEGMENT="1"> <ADDR_NO>2001192521</ADDR_NO> <NAME>Bla Bla 2</NAME> <CITY>Berlin</CITY> <POSTL_COD1>10299</POSTL_COD1> <STREET>Hauptstraße</STREET> <HOUSE_NO>5</HOUSE_NO> <COUNTRY>DE</COUNTRY> <LANGU>D</LANGU> <REGION>05</REGION> <TIME_ZONE>CET</TIME_ZONE> <TRANSPZONE>R08</TRANSPZONE> <E1BPADR11 SEGMENT="1"> <COUNTRYISO>DE</COUNTRYISO> <LANGU_ISO>DE</LANGU_ISO> <LANGU_CR>D</LANGU_CR> <LANGUCRISO>DE</LANGUCRISO> </E1BPADR11> </E1BPADR1> <E1BPADR1 SEGMENT="1"> <ADDR_NO>2001206840</ADDR_NO> <NAME>Bla Bla 3</NAME> <CITY>Hamburg</CITY> <POSTL_COD1>22014</POSTL_COD1> <STREET>Hafenstraße</STREET> <HOUSE_NO>5</HOUSE_NO> <COUNTRY>DE</COUNTRY> <LANGU>N</LANGU> <REGION>05</REGION> <TIME_ZONE>CET</TIME_ZONE> <E1BPADR11 SEGMENT="1"> <E_MAIL>bal.bla@bla.com</E_MAIL> <COUNTRYISO>DE</COUNTRYISO> <LANGU_ISO>NL</LANGU_ISO> <LANGU_CR>D</LANGU_CR> <LANGUCRISO>DE</LANGUCRISO> </E1BPADR11> </E1BPADR1>
Bisher habe ich mit simpleXML versucht eine Lösung zu finden. Hier ein Beispiel:
PHP-Code:
$xml_test = simplexml_load_file("delivery_1.xml");
echo "Auftragsnummer: ". $xml_test->IDOC->E1SHP_OBDLV_SAVE_REPLICA->
E1BPOBDLVHDR->DELIV_NUMB . "<br>";
echo "Route: ". $xml_test->IDOC->E1SHP_OBDLV_SAVE_REPLICA->
E1BPOBDLVHDR->ROUTE . "<br>";
echo "Name: ". $xml_test->IDOC->E1SHP_OBDLV_SAVE_REPLICA->
E1BPOBDLVHDR->E1BPADR1[0]->NAME . "<br>";
Kommentar