What can I use to get it?
For unnested (single data record) XML I usually just do it "manually" with eg a function like this:
B4X:
Sub GetXMLField(XML As String, FieldName As String) As String
Dim P1 As Int = XML.IndexOf("<" & FieldName & " ")
If P1 > -1 Then
Dim P2 As Int = XML.IndexOf2(">", P1)
If P2 > -1 Then
Dim P3 As Int = XML.IndexOf("</" & FieldName & ">")
If P3 > -1 Then
Return XML.SubString2(P2 + 1, P3)
End If
End If
End If
Return "XML field " & FieldName & " not found" 'or whatever you prefer to signify not found
End Sub
which on your sample data:
[CODE lang="b4x"]Dim SampleXML As String = $"<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:NS1="urn:wsNewGES2000Intf-IwsNewGES2000">
<NS1

DA_DatosArticuloResponse xmlns:NS2="urn:wsNewGES2000Intf">
<NS2

DADatosArticulo id="1" xsi:type="NS2

DADatosArticulo">
<Codigo xsi:type="xsd:string">B1001</Codigo>
<Nombre xsi:type="xsd:string">PAT. LISA FAMILIAR 260 GRS X 12 B.</Nombre>
<Existencias xsi:type="xsd:double">0</Existencias>
<Costo xsi:type="xsd:double">1.2</Costo>
<Margen0 xsi:type="xsd:double">3</Margen0>
<PVP0 xsi:type="xsd:double">1.212</PVP0>
<Margen1 xsi:type="xsd:double">2</Margen1>
<PVP1 xsi:type="xsd:double">1.224</PVP1>
<Margen2 xsi:type="xsd:double">0</Margen2>
<PVP2 xsi:type="xsd:double">1.236</PVP2>
<Margen3 xsi:type="xsd:double">4</Margen3>
<PVP3 xsi:type="xsd:double">1.248</PVP3>
</NS2

DADatosArticulo>
<return href="#1"/>
</NS1

DA_DatosArticuloResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
"$
[/CODE]
and tested using:
[CODE lang="b4x"]
Log("VENDITA!!! --- " & GetXMLField(SampleXML, "Nombre") & " --- VENDITA!!!")
Dim FieldName() As String = Array As String("Codigo", "Nombre", "Existencias", "Costo", "Margen3", "margen3")
For Each S As String In FieldName
Log(S & " = " & GetXMLField(SampleXML, S))
Next[/CODE]
returns this:
[CODE lang="html" title="Log output"]Waiting for debugger to connect...
Program started.
VENDITA!!! --- PAT. LISA FAMILIAR 260 GRS X 12 B. --- VENDITA!!!
Codigo = B1001
Nombre = PAT. LISA FAMILIAR 260 GRS X 12 B.
Existencias = 0
Costo = 1.2
Margen3 = 4
margen3 = XML field margen3 not found[/CODE]