Lendo XML

Discussão em 'WebSpeed' iniciado por phrix, Agosto 6, 2009.

  1. phrix

    phrix Membro Participativo

    Boa Tarde Pessoal,

    Estou lendo o XML desta forma:

    IF REQUEST_METHOD = "POST" AND
    WEB-CONTEXT:IS-XML AND
    WEB-CONTEXT:X-DOCUMENT <> ? THEN
    hDoc = WEB-CONTEXT:X-DOCUMENT NO-ERROR.

    Quando recebo 1 registro apenas no meu XML consigo ler todos os nós pegar seus valores, etc, porém quando recebo mais de 1 registro recebo o seguinte erro:
    P-005200 T-004084 1 WS -- X-NODEREF or X-DOCUMENT X-DOCUMENT got an error: FATAL ERROR: file 'MEMPTR', line '4', column '1', message 'Expected comment or processing instruction'. (9082)

    Não consigo nem carregar o XML, alguém tem alguma idéia do que pode ser ?
  2. sl4v3r

    sl4v3r Membro Participativo

    O xml q vc está recebendo está correto?
    Se puder postar o xml...
  3. phrix

    phrix Membro Participativo

    Olá,

    Acho que esta sim
    Recebo ele de um programa Flex que é o XML q alimenta um Datagrid se eu definir o retorno no flex como texto e ler no
    Progress desta forma:

    DEFINE VARIABLE vc-xml AS CHAR NO-UNDO.

    /*------------- Inicio Programa -------------*/

    ASSIGN vc-xml = GET-VALUE("retxml").

    MESSAGE vc-xml.

    No log do Webspeed eu recebo assim:

    <Registro>
    <nome>X DISTRIBUIDORA DE PROTUDOS LTDA</nome>
    </Registro>
    <Registro>
    <nome>Y ENGENHARIA ELETRICA LTDA</nome>
    </Registro>

    Teria alguma dica ?
  4. phrix

    phrix Membro Participativo

    Quando recebo 1 registro apenas que da certo se salvar direto como XML recebo assim:

    <?xml version="1.0" ?>
    <Registro>
    <nome>X DISTRIBUIDORA DE PROTUDOS LTDA</nome>
    </Registro>

    Quando for mais que 1 registro não consigo nem salvar.
  5. sl4v3r

    sl4v3r Membro Participativo

    Esse codigo le um XML e alimenta uma temp-table.

    Código:
    DEFINE VARIABLE cSourceType AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cReadMode AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE lOverrideDefaultMapping AS LOGICAL NO-UNDO. 
    DEFINE VARIABLE cFile AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cEncoding AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cSchemaLocation AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cFieldTypeMapping AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cVerifySchemaMode AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE returnValue AS LOGICAL NO-UNDO.
    
    DEFINE TEMP-TABLE ttAuth
    FIELD login AS CHARACTER
    FIELD senha AS CHARACTER.
    
    ASSIGN cSourceType             = "FILE"
           cFile                   = "autentication.xml"
           cReadMode               = "EMPTY"
           cSchemaLocation         = ?
           lOverrideDefaultMapping = ?
           cFieldTypeMapping       = ?
           cVerifySchemaMode       = ?.
    
    returnValue = TEMP-TABLE ttAuth:READ-XML(cSourceType
                                            ,cFile
                                            , cReadMode
                                            ,cSchemaLocation
                                            ,lOverrideDefaultMapping
                                            ,cFieldTypeMapping
                                            , cVerifySchemaMode).
    
    IF returnValue THEN
    
    FOR EACH ttAuth:
       DISPLAY ttAuth WITH 1 COL 1 DOWN. 
    END.

Compartilhe esta Página