1. Pepe Cuenca
  2. PowerBuilder
  3. Thursday, 23 December 2021 07:58 AM UTC

Good Morning, 

I'm trying to "read" a webservice response that looks like this:

 

<ConsultaGenericaBDResult>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;&lt;TABLA&gt;&lt;REGISTRO&gt;&lt;CAMPO NOMBRE="cempr"&gt;&lt;![CDATA[00011]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ctrab"&gt;&lt;![CDATA[321442]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpers"&gt;&lt;![CDATA[20496548Y]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel1"&gt;&lt;![CDATA[UBEDA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel2"&gt;&lt;![CDATA[SAUCO]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nombr"&gt;&lt;![CDATA[ALEXANDRE]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nass"&gt;&lt;![CDATA[461109974373]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="f_nac"&gt;&lt;![CDATA[22/08/1999 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dsigl"&gt;&lt;![CDATA[CL]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="domic"&gt;&lt;![CDATA[FRANCESC BENETO]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dnume"&gt;&lt;![CDATA[70]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="desca"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="piso"&gt;&lt;![CDATA[1]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dpuer"&gt;&lt;![CDATA[1]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="direc"&gt;&lt;![CDATA[CL/ FRANCESC BENETO, 70  1 1]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpais"&gt;&lt;![CDATA[ES]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpost"&gt;&lt;![CDATA[46270]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat"&gt;&lt;![CDATA[CANCELADO]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="sexo"&gt;&lt;![CDATA[Varón]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat2"&gt;&lt;![CDATA[S]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ttrab"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PIRF"&gt;&lt;![CDATA[2,00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PANTI"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccuad"&gt;&lt;![CDATA[1059. RAFELGUARAF. BENJAMIN VERCHER]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="tarje"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccent"&gt;&lt;![CDATA[132 RECOLECCION VALENCIA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nmatr"&gt;&lt;![CDATA[321442]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="horar"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="calen"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cconv"&gt;&lt;![CDATA[306]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccate"&gt;&lt;![CDATA[002]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csitu"&gt;&lt;![CDATA[2]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cregi"&gt;&lt;![CDATA[AGRARIO. Eventual Jornadas Reales]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="SB_NIVEL_SALARIAL"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_FUNC_NIVEL_SALARIAL"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_PERS"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csali"&gt;&lt;![CDATA[COGEDOR]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="clpre"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="orden"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="valo2"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="IBAN"&gt;&lt;![CDATA[ES19]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cenbanc"&gt;&lt;![CDATA[0182]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csubanc"&gt;&lt;![CDATA[0532]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="DC"&gt;&lt;![CDATA[89]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cuenban"&gt;&lt;![CDATA[890201524501]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="falta"&gt;&lt;![CDATA[28/10/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fInicioSecuencia"&gt;&lt;![CDATA[28/10/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fbaja"&gt;&lt;![CDATA[22/12/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="CECO"&gt;&lt;![CDATA[AAB1102]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="F_ref"&gt;&lt;![CDATA[22/12/2021 15:52:12]]&gt;&lt;/CAMPO&gt;&lt;/REGISTRO&gt;&lt;REGISTRO&gt;&lt;CAMPO NOMBRE="cempr"&gt;&lt;![CDATA[00199]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ctrab"&gt;&lt;![CDATA[000533]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpers"&gt;&lt;![CDATA[Y10977896L]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel1"&gt;&lt;![CDATA[BELATTAR]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel2"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nombr"&gt;&lt;![CDATA[LAILA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nass"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="f_nac"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dsigl"&gt;&lt;![CDATA[CL]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="domic"&gt;&lt;![CDATA[11]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dnume"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="desca"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="piso"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dpuer"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="direc"&gt;&lt;![CDATA[CL/ 11,]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpais"&gt;&lt;![CDATA[ES]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpost"&gt;&lt;![CDATA[46294]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat"&gt;&lt;![CDATA[PROVISIONAL]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="sexo"&gt;&lt;![CDATA[Varón]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat2"&gt;&lt;![CDATA[N]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ttrab"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PIRF"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PANTI"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccuad"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="tarje"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccent"&gt;&lt;![CDATA[001 EUROFIRMS]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nmatr"&gt;&lt;![CDATA[000533]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="horar"&gt;&lt;![CDATA[PLANTILLA PARA CARGA MASIVA PRODUCCIÓN POBLA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="calen"&gt;&lt;![CDATA[POBLA LLARGA TURNOS]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cconv"&gt;&lt;![CDATA[001]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccate"&gt;&lt;![CDATA[001]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csitu"&gt;&lt;![CDATA[3]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cregi"&gt;&lt;![CDATA[GENERAL]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="SB_NIVEL_SALARIAL"&gt;&lt;![CDATA[12,8400]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_FUNC_NIVEL_SALARIAL"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_PERS"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csali"&gt;&lt;![CDATA[001 Encajadora Eurofirms]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="clpre"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="orden"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="valo2"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="IBAN"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cenbanc"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csubanc"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="DC"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cuenban"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="falta"&gt;&lt;![CDATA[16/12/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fInicioSecuencia"&gt;&lt;![CDATA[16/12/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fbaja"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="CECO"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO><CAMPO NOMBRE="F_ref"&gt;&lt;![CDATA[22/12/2021 16:02:36]]&gt;&lt;/CAMPO&gt;&lt;/REGISTRO&gt;&lt;/TABLA&gt;</ConsultaGenericaBDResult>
 
I'm "manually" parsing it to take out the data into a DS, but the process exponentially increases when the response becomes bigger. 
 
Is there any way to do it easily? 
I'm trying with PBDOM, but i can´t retrieve the data (becouse I've never used it and I don't know how).
 
Thank you very much!

 

 

Miguel Leeuwe Accepted Answer Pending Moderation
  1. Monday, 27 December 2021 20:37 PM UTC
  2. PowerBuilder
  3. # 1

Hi, since I've never done anything with PBDOM myself, I tried it out in a sample app. Seems to be working for me !

Maybe it's helpful to you. See the attachment. (made in PB2019 R3).

 

Attachments (1)
Comment
  1. Miguel Leeuwe
  2. Monday, 27 December 2021 21:01 PM UTC
My code also fixes your problem with &gt; and &lt;, but to be frank, the source that you get that response from should give you the correct xml and not that encoded stuff.
  1. Helpful 1
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Monday, 27 December 2021 16:36 PM UTC
  2. PowerBuilder
  3. # 2

Hi,

Your response is still full of &lt; and &gt; which is causing the XML to be invalid.

I've replaced all of them an added to that: you ONLY have to parse what's between the "ConsultaGenericaBDResult" tags:

 

<?xml version="1.0" encoding="ISO-8859-1"?>
<TABLA>
	<REGISTRO>
		<CAMPO NOMBRE="cempr"><![CDATA[00011]]></CAMPO>
		<CAMPO NOMBRE="ctrab"><![CDATA[001064]]></CAMPO>
		<CAMPO NOMBRE="cpers"><![CDATA[20931014W]]></CAMPO>
		<CAMPO NOMBRE="apel1"><![CDATA[BALLESTER]]></CAMPO>
		<CAMPO NOMBRE="apel2"><![CDATA[JORDA]]></CAMPO>
		<CAMPO NOMBRE="nombr"><![CDATA[CLARA]]></CAMPO>
		<CAMPO NOMBRE="nass"><![CDATA[461130324771]]></CAMPO>
		<CAMPO NOMBRE="f_nac"><![CDATA[02/02/1999 00:00:00]]></CAMPO>
		<CAMPO NOMBRE="dsigl"><![CDATA[CL]]></CAMPO>
		<CAMPO NOMBRE="domic"><![CDATA[DIPUTACIO]]></CAMPO>
		<CAMPO NOMBRE="dnume"><![CDATA[2]]></CAMPO>
		<CAMPO NOMBRE="desca"><![CDATA[0]]></CAMPO>
		<CAMPO NOMBRE="piso"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="dpuer"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="direc"><![CDATA[CL/ DIPUTACIO, 2 0]]></CAMPO>
		<CAMPO NOMBRE="cpais"><![CDATA[ES]]></CAMPO>
		<CAMPO NOMBRE="cpost"><![CDATA[46293]]></CAMPO>
		<CAMPO NOMBRE="estat"><![CDATA[ACTIVO]]></CAMPO>
		<CAMPO NOMBRE="sexo"><![CDATA[Mujer]]></CAMPO>
		<CAMPO NOMBRE="estat2"><![CDATA[N]]></CAMPO>
		<CAMPO NOMBRE="ttrab"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="PIRF"><![CDATA[2,00]]></CAMPO>
		<CAMPO NOMBRE="PANTI"><![CDATA[0,000]]></CAMPO>
		<CAMPO NOMBRE="ccuad"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="tarje"><![CDATA[9301000366]]></CAMPO>
		<CAMPO NOMBRE="ccent"><![CDATA[193 OFICINAS]]></CAMPO>
		<CAMPO NOMBRE="nmatr"><![CDATA[001064]]></CAMPO>
		<CAMPO NOMBRE="horar"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="calen"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="cconv"><![CDATA[101]]></CAMPO>
		<CAMPO NOMBRE="ccate"><![CDATA[001]]></CAMPO>
		<CAMPO NOMBRE="csitu"><![CDATA[0]]></CAMPO>
		<CAMPO NOMBRE="cregi"><![CDATA[GENERAL]]></CAMPO>
		<CAMPO NOMBRE="SB_NIVEL_SALARIAL"><![CDATA[1009,5600]]></CAMPO>
		<CAMPO NOMBRE="PR_PLUS_FUNC_NIVEL_SALARIAL"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="PR_PLUS_PERS"><![CDATA[1400,0000]]></CAMPO>
		<CAMPO NOMBRE="csali"><![CDATA[AUXILIAR ADMINISTRATIVO]]></CAMPO>
		<CAMPO NOMBRE="clpre"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="orden"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="valo2"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="IBAN"><![CDATA[ES76]]></CAMPO>
		<CAMPO NOMBRE="cenbanc"><![CDATA[3058]]></CAMPO>
		<CAMPO NOMBRE="csubanc"><![CDATA[2165]]></CAMPO>
		<CAMPO NOMBRE="DC"><![CDATA[81]]></CAMPO>
		<CAMPO NOMBRE="cuenban"><![CDATA[812820000356]]></CAMPO>
		<CAMPO NOMBRE="falta"><![CDATA[11/10/2021 00:00:00]]></CAMPO>
		<CAMPO NOMBRE="fInicioSecuencia"><![CDATA[11/10/2021 00:00:00]]></CAMPO>
		<CAMPO NOMBRE="fbaja"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="CECO"><![CDATA[AAC1101]]></CAMPO>
		<CAMPO NOMBRE="F_ref"><![CDATA[27/12/2021 15:42:58]]></CAMPO>
	</REGISTRO>
	<REGISTRO>
		<CAMPO NOMBRE="cempr"><![CDATA[00011]]></CAMPO>
		<CAMPO NOMBRE="ctrab"><![CDATA[321518]]></CAMPO>
		<CAMPO NOMBRE="cpers"><![CDATA[Y18413271T]]></CAMPO>
		<CAMPO NOMBRE="apel1"><![CDATA[BOUBA]]></CAMPO>
		<CAMPO NOMBRE="apel2"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="nombr"><![CDATA[KEITA]]></CAMPO>
		<CAMPO NOMBRE="nass"><![CDATA[461182643137]]></CAMPO>
		<CAMPO NOMBRE="f_nac"><![CDATA[01/01/1998 00:00:00]]></CAMPO>
		<CAMPO NOMBRE="dsigl"><![CDATA[CL]]></CAMPO>
		<CAMPO NOMBRE="domic"><![CDATA[CAMINO VIEJODE XIRIVELLA]]></CAMPO>
		<CAMPO NOMBRE="dnume"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="desca"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="piso"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="dpuer"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="direc"><![CDATA[CL/ CAMINO VIEJODE XIRIVELLA,]]></CAMPO>
		<CAMPO NOMBRE="cpais"><![CDATA[ES]]></CAMPO>
		<CAMPO NOMBRE="cpost"><![CDATA[46950]]></CAMPO>
		<CAMPO NOMBRE="estat"><![CDATA[ACTIVO]]></CAMPO>
		<CAMPO NOMBRE="sexo"><![CDATA[Varón]]></CAMPO>
		<CAMPO NOMBRE="estat2"><![CDATA[N]]></CAMPO>
		<CAMPO NOMBRE="ttrab"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="PIRF"><![CDATA[2,00]]></CAMPO>
		<CAMPO NOMBRE="PANTI"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="ccuad"><![CDATA[1133. VALENCIA. ILYAS MOHAMMAD]]></CAMPO>
		<CAMPO NOMBRE="tarje"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="ccent"><![CDATA[132 RECOLECCION VALENCIA]]></CAMPO>
		<CAMPO NOMBRE="nmatr"><![CDATA[321518]]></CAMPO>
		<CAMPO NOMBRE="horar"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="calen"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="cconv"><![CDATA[306]]></CAMPO>
		<CAMPO NOMBRE="ccate"><![CDATA[002]]></CAMPO>
		<CAMPO NOMBRE="csitu"><![CDATA[0]]></CAMPO>
		<CAMPO NOMBRE="cregi"><![CDATA[AGRARIO. Eventual Jornadas Reales]]></CAMPO>
		<CAMPO NOMBRE="SB_NIVEL_SALARIAL"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="PR_PLUS_FUNC_NIVEL_SALARIAL"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="PR_PLUS_PERS"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="csali"><![CDATA[COGEDOR]]></CAMPO>
		<CAMPO NOMBRE="clpre"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="orden"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="valo2"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="IBAN"><![CDATA[ES17]]></CAMPO>
		<CAMPO NOMBRE="cenbanc"><![CDATA[3159]]></CAMPO>
		<CAMPO NOMBRE="csubanc"><![CDATA[0041]]></CAMPO>
		<CAMPO NOMBRE="DC"><![CDATA[13]]></CAMPO>
		<CAMPO NOMBRE="cuenban"><![CDATA[132806090128]]></CAMPO>
		<CAMPO NOMBRE="falta"><![CDATA[09/11/2021 00:00:00]]></CAMPO>
		<CAMPO NOMBRE="fInicioSecuencia"><![CDATA[09/11/2021 00:00:00]]></CAMPO>
		<CAMPO NOMBRE="fbaja"><![CDATA[]]></CAMPO>
		<CAMPO NOMBRE="CECO"><![CDATA[AAB1102]]></CAMPO>
		<CAMPO NOMBRE="F_ref"><![CDATA[27/12/2021 15:33:20]]></CAMPO>
	</REGISTRO>
</TABLA>

Now try again. (Later I'll have a look if I can do this myself, but gotta go right now).

regards

Comment
There are no comments made yet.
Pepe Cuenca Accepted Answer Pending Moderation
  1. Monday, 27 December 2021 15:26 PM UTC
  2. PowerBuilder
  3. # 3

Hi All, 

I posted the xml i had already treated, so maybe is not correct.

This is a full response, contained in ls_data variable

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><ConsultaGenericaBDResponse xmlns="http://www.grupocastilla.es/epsilonnetws"><ConsultaGenericaBDResult>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;&lt;TABLA&gt;&lt;REGISTRO&gt;&lt;CAMPO NOMBRE="cempr"&gt;&lt;![CDATA[00011]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ctrab"&gt;&lt;![CDATA[001064]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpers"&gt;&lt;![CDATA[20931014W]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel1"&gt;&lt;![CDATA[BALLESTER]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel2"&gt;&lt;![CDATA[JORDA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nombr"&gt;&lt;![CDATA[CLARA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nass"&gt;&lt;![CDATA[461130324771]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="f_nac"&gt;&lt;![CDATA[02/02/1999 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dsigl"&gt;&lt;![CDATA[CL]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="domic"&gt;&lt;![CDATA[DIPUTACIO]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dnume"&gt;&lt;![CDATA[2]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="desca"&gt;&lt;![CDATA[0]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="piso"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dpuer"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="direc"&gt;&lt;![CDATA[CL/ DIPUTACIO, 2 0]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpais"&gt;&lt;![CDATA[ES]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpost"&gt;&lt;![CDATA[46293]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat"&gt;&lt;![CDATA[ACTIVO]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="sexo"&gt;&lt;![CDATA[Mujer]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat2"&gt;&lt;![CDATA[N]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ttrab"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PIRF"&gt;&lt;![CDATA[2,00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PANTI"&gt;&lt;![CDATA[0,000]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccuad"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="tarje"&gt;&lt;![CDATA[9301000366]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccent"&gt;&lt;![CDATA[193 OFICINAS]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nmatr"&gt;&lt;![CDATA[001064]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="horar"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="calen"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cconv"&gt;&lt;![CDATA[101]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccate"&gt;&lt;![CDATA[001]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csitu"&gt;&lt;![CDATA[0]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cregi"&gt;&lt;![CDATA[GENERAL]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="SB_NIVEL_SALARIAL"&gt;&lt;![CDATA[1009,5600]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_FUNC_NIVEL_SALARIAL"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_PERS"&gt;&lt;![CDATA[1400,0000]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csali"&gt;&lt;![CDATA[AUXILIAR ADMINISTRATIVO]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="clpre"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="orden"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="valo2"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="IBAN"&gt;&lt;![CDATA[ES76]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cenbanc"&gt;&lt;![CDATA[3058]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csubanc"&gt;&lt;![CDATA[2165]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="DC"&gt;&lt;![CDATA[81]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cuenban"&gt;&lt;![CDATA[812820000356]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="falta"&gt;&lt;![CDATA[11/10/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fInicioSecuencia"&gt;&lt;![CDATA[11/10/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fbaja"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="CECO"&gt;&lt;![CDATA[AAC1101]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="F_ref"&gt;&lt;![CDATA[27/12/2021 15:42:58]]&gt;&lt;/CAMPO&gt;&lt;/REGISTRO&gt;&lt;REGISTRO&gt;&lt;CAMPO NOMBRE="cempr"&gt;&lt;![CDATA[00011]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ctrab"&gt;&lt;![CDATA[321518]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpers"&gt;&lt;![CDATA[Y18413271T]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel1"&gt;&lt;![CDATA[BOUBA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="apel2"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nombr"&gt;&lt;![CDATA[KEITA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nass"&gt;&lt;![CDATA[461182643137]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="f_nac"&gt;&lt;![CDATA[01/01/1998 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dsigl"&gt;&lt;![CDATA[CL]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="domic"&gt;&lt;![CDATA[CAMINO VIEJODE XIRIVELLA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dnume"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="desca"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="piso"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="dpuer"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="direc"&gt;&lt;![CDATA[CL/ CAMINO VIEJODE XIRIVELLA,]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpais"&gt;&lt;![CDATA[ES]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cpost"&gt;&lt;![CDATA[46950]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat"&gt;&lt;![CDATA[ACTIVO]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="sexo"&gt;&lt;![CDATA[Varón]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="estat2"&gt;&lt;![CDATA[N]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ttrab"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PIRF"&gt;&lt;![CDATA[2,00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PANTI"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccuad"&gt;&lt;![CDATA[1133. VALENCIA. ILYAS MOHAMMAD]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="tarje"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccent"&gt;&lt;![CDATA[132 RECOLECCION VALENCIA]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="nmatr"&gt;&lt;![CDATA[321518]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="horar"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="calen"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cconv"&gt;&lt;![CDATA[306]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="ccate"&gt;&lt;![CDATA[002]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csitu"&gt;&lt;![CDATA[0]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cregi"&gt;&lt;![CDATA[AGRARIO. Eventual Jornadas Reales]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="SB_NIVEL_SALARIAL"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_FUNC_NIVEL_SALARIAL"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="PR_PLUS_PERS"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csali"&gt;&lt;![CDATA[COGEDOR]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="clpre"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="orden"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="valo2"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="IBAN"&gt;&lt;![CDATA[ES17]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cenbanc"&gt;&lt;![CDATA[3159]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="csubanc"&gt;&lt;![CDATA[0041]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="DC"&gt;&lt;![CDATA[13]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="cuenban"&gt;&lt;![CDATA[132806090128]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="falta"&gt;&lt;![CDATA[09/11/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fInicioSecuencia"&gt;&lt;![CDATA[09/11/2021 00:00:00]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="fbaja"&gt;&lt;![CDATA[]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="CECO"&gt;&lt;![CDATA[AAB1102]]&gt;&lt;/CAMPO&gt;&lt;CAMPO NOMBRE="F_ref"&gt;&lt;![CDATA[27/12/2021 15:33:20]]&gt;&lt;/CAMPO&gt;&lt;/REGISTRO&gt;&lt;/TABLA&gt;</ConsultaGenericaBDResult></ConsultaGenericaBDResponse></soap:Body></soap:Envelope>

 

I've added this code:

PBDOM_DOCUMENT documento
PBDOM_BUILDER constructor
PBDOM_ELEMENT elemento
PBDOM_OBJECT pbdom_obj_array[]
constructor = create PBDOM_BUILDER

documento = constructor.buildfromstring( ls_data) //Builds from the ls_data than contains the response
string ls_root, ls_atributo, ls_texto
boolean lb_hijos
ls_root = documento.getrootelement( ).getname( ) // Now it contains "Envelope"
ls_texto = documento.getrootelement().gettext( ) // Doesn't contain anything
lb_hijos = documento.getrootelement( ).haschildren() //Becomes true
documento.getcontent( pbdom_obj_array ) //It has now 2 items. 

I think I'm on the correct way, but I don't know how to go down the XML until I find the "leafs"...

Thank you very much again!!!

 

 

Comment
  1. Miguel Leeuwe
  2. Monday, 27 December 2021 16:31 PM UTC
Hi Pepe,

See my new answer.
  1. Helpful
There are no comments made yet.
Daryl Foster Accepted Answer Pending Moderation
  1. Thursday, 23 December 2021 23:26 PM UTC
  2. PowerBuilder
  3. # 4

Hi Pepe,

Do you have control over the "xml" generated by the webservice?  The xml you've posted isn't valid so I doubt PBDOM will load it.  It is almost valid, if these lines near the bottom of your xml:

&lt;/CAMPO><CAMPO

were replaced with

&lt;/CAMPO&gt;&lt;CAMPO

it would parse as valid XML, with one element called <ConsultaGenericaBDResult> that contains a string that is escaped XML.  I doubt that is what your want though?

If you could parse it with PBDOM, you would need to extract that escaped XML and unescape it (replace &gt;&lt; with ><). Then you would be able to load it in PBDOM and parse it.  It would probably be much better if the response was actual XML though so that your could process it directly. e.g.

<?xml version="1.0" encoding="ISO-8859-1"?>
<ConsultaGenericaBDResult>
    <TABLA>
        <REGISTRO>
            <CAMPO NOMBRE="cempr"><![CDATA[00011]]></CAMPO>
            <CAMPO NOMBRE="ctrab"><![CDATA[321442]]></CAMPO>
            <CAMPO NOMBRE="cpers"><![CDATA[20496548Y]]></CAMPO>
            <!-- I've removed some of the elements for brevity -->
            <CAMPO NOMBRE="CECO"><![CDATA[AAB1102]]></CAMPO>
            <CAMPO NOMBRE="F_ref"><![CDATA[22/12/2021 15:52:12]]></CAMPO>
        </REGISTRO>
        <REGISTRO>
            <CAMPO NOMBRE="cempr"><![CDATA[00199]]></CAMPO>
            <CAMPO NOMBRE="ctrab"><![CDATA[000533]]></CAMPO>
            <CAMPO NOMBRE="cpers"><![CDATA[Y10977896L]]></CAMPO>
            <!-- I've removed some of the elements for brevity -->
            <CAMPO NOMBRE="CECO"><![CDATA[]]></CAMPO>
            <CAMPO NOMBRE="F_ref"><![CDATA[22/12/2021 16:02:36]]></CAMPO>
        </REGISTRO>
    </TABLA>
</ConsultaGenericaBDResult>

 

 

Comment
  1. Miguel Leeuwe
  2. Tuesday, 28 December 2021 18:59 PM UTC
You said it all before I got involved Daryl, I was just bored and wanted to give it a try myself.

regards.
  1. Helpful
There are no comments made yet.
Pepe Cuenca Accepted Answer Pending Moderation
  1. Thursday, 23 December 2021 10:54 AM UTC
  2. PowerBuilder
  3. # 5

Hi Marco, 

Thank you for your response. 

If I do it with PBDOM, will it detect root, children and leafs even if the codification is &gt;&lt instead of >;< ?

 

Comment
  1. Miguel Leeuwe
  2. Monday, 27 December 2021 22:23 PM UTC
No it won't work. Your XML has to be valid. You can paste it on this site to validate it: https://codebeautify.org/xmlvalidator

Or you could use Notepad++ (which by the way also has a nice plugin to tidy up and indent any xml).
  1. Helpful 1
There are no comments made yet.
Marco Meoni Accepted Answer Pending Moderation
  1. Thursday, 23 December 2021 08:57 AM UTC
  2. PowerBuilder
  3. # 6

Hi Pepe,

I assume you are receiving the response as a plain whole string via PB HTTPclient object (btw, why angular brackets are represented by escape chars &gt;&lt instead of >;< ?).

PBDOM is the way to go in a PB apps, it shouldnt take big coding if you know the XML structure.
Response becomes bigger because you receive more records, but structure is fixed so it is

1) load the response into a PBDOM_document object and get the root element
2) test if element has children or is a leaf
3) if children, do a loop until get a leaf
4) extract element value, attributes, etc...

Howto:

https://docs.appeon.com/pb2021/application_techniques/ch04s03.html

Best,

.m

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.