Leitura de um XML

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Adelson.p
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 23 Mai 2012 06:56
Localização: Curitiba

Leitura de um XML

Mensagem por Adelson.p »

Olá, bom dia... :D

Alguém pode me ajudar, a ler um XML, com mais ou menos, este formato:

Código: Selecionar todos

<?xml version="1.0"?>

<Empresa type="MICRO">
  <name>Churros</name>
  <NumFun>10</NumFun>
  
  <internalIntes>
    <tool type="Carrinho">
      <name>Churros Feliz</name>
      <usodiario>8h</usodiario>
      <idade>5a</idade>
    </tool>

    <tool type="Casa Preparo">
      <name>?</name>
      <usodiario>24h</usodiario>
      <idade>8a</idade>
    </tool>
  </internalIntes>
  
</Empresa>
E o programa tem que salvar as informações lidas em um txt, como posso fazer isso?
Ele salve assim, mais ou menos...

Empresa:Churros
->8h
->5a
-->Ferramenta:Carrinho
--->Churros Feliz
--->8h
--->5a
-->Ferramenta:Casa Preparo
--->?


Algo assim, agradeço desde já pela ajuda, nem que seja pelo menos, para ler o XML, já ira me ajudar muito.
Grato

Adelson Pereira
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Leitura de um XML

Mensagem por Pablo César »

Bem vindo ao fórum Adelson !

Você já utilizou o mecanismo de "Busca" daqui do fórum ?. Aqui você tem um exemplo como ler XML: https://pctoledo.org/forum/viewto ... 43&start=0

Eus fiz o teste e leu todos os tags. Agora da forma que você quer, é você adaptando da forma que você considerar melhor. Pois tudo dependerá como você irá armazenar esses dados. Veja que você repete o conteúdo do tag "tool" para ser considerado no tag "empresa". Isso está um pouco confuso, mas quem sabe você consiga adaptar as suas necessidades.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Leitura de um XML

Mensagem por alxsts »

Olá!

O tópico importar XML de compra trata um arquivo XML onde existem várias ocorrencias da mesma tag.

Tente adaptar o código e, ao invés de armazenar em um hash, como naquele código, grave em um arquivo texto.
[]´s
Alexandre Santos (AlxSts)
Imatech
Usuário Nível 3
Usuário Nível 3
Mensagens: 350
Registrado em: 24 Ago 2010 23:48
Localização: Goiânia-GO

Leitura de um XML

Mensagem por Imatech »

Código: Selecionar todos

*----------------------------------------------------------*
* Exemplo Basico
*----------------------------------------------------------*
#include "hbxml.ch"
FUNCTION F_Leitura_XML()
LOCAL sAux := MemoRead( 'arquivo.xml' )
LOCAL oBook, oIterator, oCurrent
LOCAL oDoc := TXmlDocument():New( sAux, HBXML_STYLE_NOESCAPE )

IF oDoc:nError # HBXML_ERROR_NONE
Alert( 'ERRO NA ABERTURA DO ARQUIVO XML' )
ELSE
oBook := oDoc:findfirst( "Empresa" )
IF oBook == NIL
Alert( 'ARQUIVO INVALIDO: IDENTIFICACAO DO DOCUMENTO )
ELSE
oIterator := TXmlIterator():New( oBook )
oCurrent := oIterator:Next()
? oCurrent:cData
ENDIF
ENDIF
*----------------------------------------------------------*
* Veja os Exemplos em
* \Harbour\contrib\xhb\tests\XML*.prg
*----------------------------------------------------------*
Editado pela última vez por Pablo César em 24 Mai 2012 13:17, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
M., Ronaldo

by: IMATECH

IMATION TECNOLOGIA
Responder