У меня есть SOAP ответ XML как:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:VizsgaHelyszinLekerdezValasz xmlns:ns2="...">
<MegyeKir>
<MegyeKir>id_1</MegyeKir>
<KirendeltsegNev>KirendeltsegNev_1</KirendeltsegNev>
<VizsgaHelyszin>
<Nev>Nev_1</Nev>
<VizsgaHelyszinKod>9020</VizsgaHelyszinKod>
<ElmeletiVizsgaTipus>Bü</ElmeletiVizsgaTipus>
<GyakorlatiVizsgaTipus>F</GyakorlatiVizsgaTipus>
</VizsgaHelyszin>
<VizsgaHelyszin>
<Nev>Nev2</Nev>
<VizsgaHelyszinKod>823020</VizsgaHelyszinKod>
<GyakorlatiVizsgaTipus>Jk</GyakorlatiVizsgaTipus>
</VizsgaHelyszin>
</MegyeKir>
<MegyeKir>
<MegyeKir>id_2</MegyeKir>
<KirendeltsegNev>KirendeltsegNev_2</KirendeltsegNev>
<VizsgaHelyszin>
<Nev>Nev_1</Nev>
<VizsgaHelyszinKod>9020</VizsgaHelyszinKod>
<GyakorlatiVizsgaTipus>Bü</GyakorlatiVizsgaTipus>
<GyakorlatiVizsgaTipus>F</GyakorlatiVizsgaTipus>
</VizsgaHelyszin>
<VizsgaHelyszin>
<Nev>Nev2</Nev>
<VizsgaHelyszinKod>823020</VizsgaHelyszinKod>
<GyakorlatiVizsgaTipus>Jk</GyakorlatiVizsgaTipus>
</VizsgaHelyszin>
</MegyeKir>
</ns2:VizsgaHelyszinLekerdezValasz>
</soap:Body>
</soap:Envelope>
Я хотел бы создать JSON объект из него следующим образом:
$response_xml = new SimpleXMLElement($response);
$response_xml->registerXPathNamespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/');
$megyekir = $response_xml->xpath("//soap:Body//MegyeKir");
echo json_encode($megyekir);
Проблема: поскольку узел "MegyeKir" имеет тот же дочерний узел "MegyeKir" в выводе JSON, дочерний узел не находится под "MegyeKir", но в отдельном ключе:
0: {MegyeKir: "id_1", KirendeltsegNev: "KirendeltsegNev_1", VizsgaHelyszin: [,…]}
1: {0: "id_1"}
2: {MegyeKir: "id_2", KirendeltsegNev: "KirendeltsegNev_2",…}
3: {0: "id_2"}
Как я могу пропустить эти элементы из массива JSON?
Большое спасибо за вашу помощь!