Histórico da Página
...
Portuguese | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Função: XmlParserRetorna um objeto, que possui uma estrutura XML, passado por parâmetro. Sintaxe
Parâmetros
X |
Retorno
Observações
<NodeXML> -<ArrayNodes> -REALNAME -TEXT -TYPE
Onde REALNAME, TEXT e TYPE sãoSão propriedades que todos nodos possuem. A propriedade <ArrayNodes> existirá quando um node possuir mais de um filho, do mesmo tipo. Demonstrado no exemplo).
Tratamento de "encoding" e caracteres especiais A string contendo o XML pode conter uma especificação/atributo de codificação (encoding) usado das tags de conteúdo do XML. As identificações mais comuns são UTF-8 e iso-8859-1. o XML recebido não possua a tag inicial com as propriedades de codificação, é assumido o encoding UTF-8. CasoCaso o XML recebido, como parâmetro, possua nodes onde o conteúdo não esteja corretamente codificado em UTF-8, a geração do Objeto XML vai falhar, indicando na variável de erro a informação "Input is not proper UTF-8, indicate encoding ! ". (e-Comercial), < (menor), > (maior), entre outros, desde que estes estejam representadosestejam representados em formato de tags não-interpretáveis ("& amp;" , " >>" , " <<" respectivamente). "xmlParseEntityRef: no name". /*Neste exemplo criamos uma função geraXml que retorna uma string contento um XML. Quando passamos essa string paraa XmlParser, a função irá montar um objeto Advpl correspondente à estrutura de dados / nodes do XML. caso isso nao ocorra a função irá retonar NIL, e uma informação de advertência ou erro será retornada nos parametros informados por referência. A estrutura: oXml: pedido: -realName -type -text nome_cliente: -realName -type -text endereço: -realName -type -text numero: -realName -type -text data: -realName -type -text itens: -item <- (array) -item[1]: -realName -type -text produto: quantidade: preco: -item[2] -realName -type -text produto: quantidade: preco: -realName -type -text */ Exemplo
Return Endif
cScript
cScript
cScript
cScript += " </Itens>"
Return cScript /*No
de um node XML. Utilizamos as funcoes EncodeUTF8() para gerar um conteudo adequado à codificação do XML, e uma função de framework _NoTags() para transformar eventuais tags interpretaveis que possam existir dentro do conteúdo para serem representadas como conteudo do node XML*/ User Function XMLEnc() Local cNome := 'A&B-ZÃO LTDA' Local cXml
Local cErro :
Local cAviso
cXml
cXml += "<Teste>" cXml += EncodeUTF8( _NoTags( cNome ) ) cXml
conout("XML Original....:") conout(cXml) oXml := XmlParser(cXml,"_",@cErro,@cAviso) MsgInfo(oXml:_TESTE:TEXT , "Conteudo" ) Return
AbrangênciaAdvanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server |