problem with XML

angeloata

New Member
Hi, I have the problem, I don´t get the value the file xml.

If can help-me, thanks.




/*** code ***/


DEF VAR hDoc AS HANDLE NO-UNDO.
DEF VAR hRoot AS HANDLE NO-UNDO.
DEF VAR good AS LOGICAL NO-UNDO.
DEF VAR cXML AS LONGCHAR NO-UNDO.

ASSIGN cXML = "<?xml version='1.0' encoding='UTF-8'?>
<retConsStatServ xmlns='http://www.portalfiscal.inf.br/nfe' versao='1.07'>
<tpAmb>2</tpAmb>
<verAplic>SP_NFE_PL_005a_R01</verAplic>
<cStat>107</cStat>
<xMotivo>Serviço em Operação</xMotivo>
<cUF>35</cUF>
<dhRecbto>2008-06-14T12:07:48</dhRecbto>
<tMed>1</tMed>
</retConsStatServ>".

CREATE X-DOCUMENT hDoc.
CREATE X-NODEREF hRoot.

hDoc:LOAD("LONGCHAR",Cxml,FALSE). /*** Pega valor de uma variável ***/
/*hDoc:LOAD("file","XML\ConsultaStatus_v107_resposta.xml",FALSE). /*** Pega valor de um arquivo externo ***/ */

hDoc:GET-DOCUMENT-ELEMENT(hRoot).

RUN GetChildren(hRoot, 1).

DELETE OBJECT hDoc.
DELETE OBJECT hRoot.

PROCEDURE GetChildren:
DEF INPUT PARAMETER hParent AS HANDLE NO-UNDO.
DEF INPUT PARAMETER level AS INTEGER NO-UNDO.

DEF VAR i AS INTEGER NO-UNDO.
DEF VAR hNoderef AS HANDLE NO-UNDO.

CREATE X-NODEREF hNoderef.

REPEAT i = 1 TO hParent:NUM-CHILDREN:
good = hParent:GET-CHILD(hNoderef,i).

IF NOT good THEN
LEAVE.

IF hNoderef:SUBTYPE <> "element" THEN
NEXT.

MESSAGE hNoderef:NAME SKIP
hNoderef:NODE-VALUE SKIP
hNoderef:ATTRIBUTE-NAMES
VIEW-AS ALERT-BOX.

RUN GetChildren(hNoderef, (level + 1)).
END.

DELETE OBJECT hNoderef.

END PROCEDURE.
 

schaapie

Member
You are skipping subtype = "TEXT".
Try adding:
Code:
    if hNoderef:subtype = "TEXT"
    then
      message hNoderef:node-value
        view-as alert-box info buttons ok.
above the if "element" then next and see what happens.
 
Top