preg_match verkeerde resultaat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marvin H

Marvin H

03/09/2013 11:35:40
Quote Anchor link
Ik probeer een XML bestand welke naar me server wordt gestuurd te 'parsen' via preg_match.

De XML haal ik via PHP zo op:
$arr = file_get_contents("php://input");


Voorbeeld XML welke naar mijn PHP wordt gestuurd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<xsi:Event xsi1:type="xsi:SubscriptionEvent" xmlns:xsi="***" xmlns:xsi1="http://www.w3.org/2001/XMLSchema-instance">
   <xsi:eventID>2e4d1d4f-be02-4023-a73e-***</xsi:eventID>
   <xsi:sequenceNumber>150</xsi:sequenceNumber>
   <xsi:userId>call_logging@***.nl</xsi:userId>
   <xsi:externalApplicationId>xml1</xsi:externalApplicationId>
   <xsi:subscriptionId>55b13324-aa66-4231-a2a8-****</xsi:subscriptionId>
   <xsi:httpContact>
      <xsi:uri>http://***/admin/listener.php</xsi:uri>
   </xsi:httpContact>
   <xsi:targetId>U_245@***.nl</xsi:targetId>
</xsi:Event>


En via een aantal preg_match zaken haal ik de informatie eruit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
preg_match('/<xsi:targetId>(.*?)<\/xsi:targetId>/s', $arr, $targetid); // GET Target ID
preg_match('/<xsi:subscriptionId>(.*?)<\/xsi:subscriptionId>/s', $arr, $subscriptionid); // GET Subscription ID
preg_match_all('/<xsi:callId>(.*?)<\/xsi:callId>/s', $arr, $callId); // GET callId


Nu werkt de preg_match targetId niet. Variable $targetid[1] bevat 'xml1' in plaats van 'U_245@***.nl'. Hij pakt dus vanuit de XML de tag xsi:externalApplicationId en plaats van xsi:targetId...

Hoe kan dat nou???????
 
PHP hulp

PHP hulp

01/03/2025 05:02:18
 
Erwin H

Erwin H

03/09/2013 12:16:56
Quote Anchor link
Waarom lees je de XML niet gewoon in met een bestaande XML extensie van php?
http://www.php.net/manual/en/refs.xml.php

Meerdere keuzes en wat je wil uitlezen zou dan een eitje moeten zijn.
 
Kris Peeters

Kris Peeters

03/09/2013 12:30:04
Quote Anchor link
Je zal trouwens moeten zoeken naar "simlplexml namespace".

Die <xsi:Event ... maakt het wat lastiger.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.