Ben net bezig met regular expressions maar kan niet uit het volgende komen.

[Metadata.Text:Path="/Leo:Leo/leo:PurchaseOrders/leo:PurchaseOrder/leo:OrderObjects/leo:OrderObject[1]/@descr",Dataset="Xml",Model="XML"]

De "1" die tussen [] staat wil ik graag variabel maken en moet uit een andere xml halen. Hierdoor kan ik door een exerne selectie op verschillende plaatsen in de xml zoeken.
$string = '[Metadata.Text:Path="/Leo:Leo/leo:PurchaseOrders/leo:PurchaseOrder/leo:OrderObjects/leo:OrderObject[1]/@descr",Dataset="Xml",Model="XML"]';
preg_match("/OrderObject\[(.?)\]/", $string, $result);
$theNumber = $result[1]; // Contains 1

:)
Top, Dit is super.
Bedankt voor de hul Team Zero
:)


Wat @Team Zero hierboven heeft aangepast is het volgende:
preg_match retourneert standaard het cijfer 1 als er een match is, 0 als er geen match is, en false als er iets is misgegaan. (Deel)patronen van de match worden in een aparte emmer opgevangen middels een derde parameter "matches" (in zijn voorbeeld is dit $result).

Je doet er trouwens verstandig aan om eerst te controleren of er een resultaat is, alvorens je rechtstreeks de waarde van het eerste subpatroon -dat mogelijk helemaal niet bestaat- retourneert.

Reageren