[OpenSIPS-Users] How to parse XML Body?

Bogdan-Andrei Iancu bogdan at opensips.org
Wed Jan 11 05:04:32 EST 2017


Hi,

Please try

$var(reg) = "(.*)/gml:Coordinates>(.*)<\/gml:Coordinates(.*)/\2/s";
xlog("Position is $(rb[1]{re.subst,$var(reg)})\n");

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 01/06/2017 05:44 PM, xaled wrote:
>
> Hi Bogdan,
>
> can you give any hints on how to get the Coordinates values and not 
> the whole xml body from the regex subst?
>
> Sorry for being not clever enough to figure it out myself.
>
> Thanks
>
> Hi Bogdan,
>
> $var(reg) = "/gml:Coordinates>(.*)<\/gml:Coordinates/\1/";
>
> xlog("Position is $(rb[1]{re.subst,$var(reg)})\n");
>
> DBG:core:subst_run:matched shows the needed XML element with value, 
> but not the value alone. The xlog output shows the whole XML body 
> without gml:Coordinates.
>
> 2017-01-05T13:23:23.104982+01:00 ivr01 /usr/local/sbin/opensips[2227]: 
> DBG:core:tr_eval_re: Trying to apply reg
>
> exp [/gml:Coordinates>(.*)<\/gml:Coordinates/\1/] on : [<?xml 
> version="1.0" encoding="UTF-8"?>#015#012<presence xml
>
> ns="urn:ietf:params:xml:ns:pidf" 
> xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" 
> xmlns:gml="urn:opengis:specificat
>
> ion:gml:schema-xsd:feature:v3.0" 
> entity="pres:sip:+1234567 at test.com">#015#012 <tuple id="PDT">#015#012  <s
>
> tatus>#015#012 <gp:geopriv>#015#012 <gp:location-info>#015#012 
> <gml:location>#015#012      <gml:Point gml:
>
> id="point1" srsName="epsg:4346">#015#012 <gml:Coordinates>12.32 
> 34.24</gml:Coordinates>#015#012      </gml:P
>
> oint>#015#012 </gml:location>#015#012 </gp:location-info>#015#012 
> <gp:usage-rules>#015#012     <gp:retran
>
> smission-allowed>no</gp:retransmission-allowed>#015#012 
> <gp:retention-expiry />#015#012 </gp:usage-rules>#01
>
> 5#012 </gp:geopriv>#015#012  </status>#015#012 
> <timestamp>2016-8-02T04:13:23Z</timestamp>#015#012 </tuple>#015#0
>
> 12</presence>#015#012#015#012]
>
> 2017-01-05T13:23:23.107376+01:00 ivr01 /usr/local/sbin/opensips[2227]: 
> DBG:core:tr_eval_re: we must compile the
>
> regexp
>
> 2017-01-05T13:23:23.107903+01:00 ivr01 /usr/local/sbin/opensips[2227]: 
> DBG:core:subst_parser: ok, se is 0x7f39a
>
> 5d0a1f0
>
> 2017-01-05T13:23:23.108241+01:00 ivr01 /usr/local/sbin/opensips[2227]: 
> DBG:core:subst_run: running. r=0
>
> 2017-01-05T13:23:23.111918+01:00 ivr01 /usr/local/sbin/opensips[2227]: 
> DBG:core:subst_run: matched (404, 45): [
>
> gml:Coordinates>12.32 34.24</gml:Coordinates]
>
> 2017-01-05T13:23:23.112380+01:00 ivr01 /usr/local/sbin/opensips[2227]: 
> DBG:core:buf_init: initializing...
>
> 2017-01-05T13:23:23.112730+01:00 ivr01 /usr/local/sbin/opensips[2227]: 
> Position is <?xml version="1.0" encoding
>
> ="UTF-8"?>#015#012<presence xmlns="urn:ietf:params:xml:ns:pidf" 
> xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xm
>
> lns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0" 
> entity="pres:sip:+1234567 at test.com">#015#0
>
> 12 <tuple id="PDT">#015#012  <status>#015#012 <gp:geopriv>#015#012 
> <gp:location-info>#015#012     <gml:locatio
>
> n>#015#012 <gml:Point gml:id="point1" 
> srsName="epsg:4346">#015#012       <12.32 34.24>#015#012      </gml:Poi
>
> nt>#015#012 </gml:location>#015#012   </gp:location-info>#015#012 
> <gp:usage-rules>#015#012     <gp:retransm
>
> ission-allowed>no</gp:retransmission-allowed>#015#012 
> <gp:retention-expiry />#015#012 </gp:usage-rules>#015#
>
> 012 </gp:geopriv>#015#012  </status>#015#012 
> <timestamp>2016-8-02T04:13:23Z</timestamp>#015#012 </tuple>#015#012
>
> </presence>
>
> Thanks
>
> *From:*Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
> *Sent:* Donnerstag, 5. Januar 2017 13:12
> *To:* OpenSIPS users mailling list <users at lists.opensips.org 
> <mailto:users at lists.opensips.org>>; xaled <xaled at web.de 
> <mailto:xaled at web.de>>
> *Subject:* Re: [OpenSIPS-Users] How to parse XML Body?
>
> Try  $var(reg) = "/gml:Coordinates>(.*)<\/gml:Coordinates/\1/";
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170111/7467ca05/attachment.html>


More information about the Users mailing list