I' working with nodes and I need to apply a UNIX-type of grep command to a body response I'm getting after an HTTP GET. Here is the incoming text (body variable):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <om2m:discovery xmlns:om2m="http://uri.etsi.org/m2m" xmlns:xmime="http://www.w3.org/2005/05/xmlmime">
<om2m:matchSize>65</om2m:matchSize>
<om2m:discoveryURI>
<reference>gscl</reference>
<reference>gscl/scls</reference>
<reference>gscl/scls/subscriptions</reference>
<reference>gscl/scls/mgmtObjs</reference>
<reference>gscl/scls/mgmtObjs/subscriptions</reference>
<reference>gscl/applications</reference>
<reference>gscl/applications/subscriptions</reference>
<reference>gscl/applications/mgmtObjs</reference>
<reference>gscl/applications/mgmtObjs/subscriptions</reference>
<reference>gscl/accessRights</reference>
<reference>gscl/accessRights/subscriptions</reference>
<reference>gscl/groups</reference>
<reference>gscl/groups/subscriptions</reference>
<reference>gscl/containers</reference>
<reference>gscl/containers/subscriptions</reference>
<reference>gscl/subscriptions</reference>
<reference>gscl/accessRights/AR_ADMIN</reference>
<reference>gscl/accessRights/AR_ADMIN/subscriptions</reference>
<reference>gscl/scls/nscl</reference>
<reference>gscl/scls/nscl/applications</reference>
<reference>gscl/scls/nscl/applications/subscriptions</reference>
<reference>gscl/scls/nscl/applications/mgmtObjs</reference>
<reference>gscl/scls/nscl/applications/mgmtObjs/subscriptions</reference>
<reference>gscl/scls/nscl/accessRights</reference>
<reference>gscl/scls/nscl/accessRights/subscriptions</reference>
<reference>gscl/scls/nscl/groups</reference>
<reference>gscl/scls/nscl/groups/subscriptions</reference>
<reference>gscl/scls/nscl/containers</reference>
<reference>gscl/scls/nscl/containers/subscriptions</reference>
<reference>gscl/scls/nscl/subscriptions</reference>
<reference>gscl/scls/nscl/attachedDevices</reference>
<reference>gscl/scls/nscl/attachedDevices/subscriptions</reference>
<reference>gscl/scls/nscl/notificationChannels</reference>
<reference>gscl/scls/nscl/mgmtObjs</reference>
<reference>gscl/scls/nscl/mgmtObjs/subscriptions</reference>
<reference>gscl/scls/nscl/m2mPocs</reference>
<reference>gscl/applications/98191axla</reference>
<reference>gscl/applications/98191axla/subscriptions</reference>
<reference>gscl/applications/98191axla/containers</reference>
<reference>gscl/applications/98191axla/containers/subscriptions</reference>
<reference>gscl/applications/98191axla/accessRights</reference>
<reference>gscl/applications/98191axla/accessRights/subscriptions</reference>
<reference>gscl/applications/98191axla/groups</reference>
<reference>gscl/applications/98191axla/groups/subscriptions</reference>
<reference>gscl/applications/98191axla/notificationChannels</reference>
<reference>gscl/applications/98191axla/containers/SENSOR </reference>
<reference>gscl/applications/98191axla/containers/SENSOR/contentInstances</reference>
<reference>gscl/applications/98191axla/containers/SENSOR/contentInstances/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/SENSOR/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/SENSOR/contentInstances/CI_23326802</reference>
<reference>gscl/applications/98191axla/containers/DATA</reference>
<reference>gscl/applications/98191axla/containers/DATA/contentInstances</reference>
<reference>gscl/applications/98191axla/containers/DATA/contentInstances/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/DATA/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/DATA/contentInstances/CI_566628946</reference>
<reference>gscl/applications/98191axla/containers/CONT_81747241</reference>
<reference>gscl/applications/98191axla/containers/CONT_81747241/contentInstances</reference>
<reference>gscl/applications/98191axla/containers/CONT_81747241/contentInstances/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/CONT_81747241/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/SENSOR/contentInstances/CI_285448423</reference>
<reference>gscl/applications/98191axla/containers/CONT_360523761</reference>
<reference>gscl/applications/98191axla/containers/CONT_360523761/contentInstances</reference>
<reference>gscl/applications/98191axla/containers/CONT_360523761/contentInstances/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/CONT_360523761/subscriptions</reference>
<reference>gscl/applications/98191axla/containers/DATA/contentInstances/CI_395775165</reference>
</om2m:discoveryURI> </om2m:discovery>
From that text, I need to extract the ID between applications and containers, which, in this case, equals 98191axla. I've attempted to do so using the match method:
var searchFor="\s<reference>gscl\/applications\.\d\/DATA\/contentInstances\/subscriptions<\/reference>";
console.log("Looking for:"); console.log(searchFor);
var found = body.match(searchFor);
Which always returns -1. I've never worked with regex before, so I had to try different things...none of them have worked. Any help is much appreciated!
Thanks! (btw, I know it is a xml representation, but it is not a complex one with very different children, so I thought manipulating the text would be easier...)