Ir para o conteúdo
flip

ler de ficheiro xml

Mensagens Recomendadas

flip    0
flip

Boas.

Alguem me sabe dizer como se faz para ler cenas de um ficheiro xml?

Arranjei este bocado de codigo mas nao o consigo perceber:

while (fgets(s, 90, fp)!=NULL)
{
  if (strstr(s, wrd)!=NULL)
    {
	fgets(s,90,fp)
	s1=strch(s,'>')
	sscanf(s1,"%d",&s[count].codigo)

	fgets(s,90,fp)
	s1=strch(s,'>')
	sscanf(s1,"%d",&s[count].num_acessos)

	fgets(s,90,fp)
	s1=strch(s,'>')
	sscanf(s1,"%d",&s[11].data)
    }

count++;
}

E depois como e que chamo essa funcao no main?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
flip    0
flip

Tive aqui a ver e pareceme que com isto é possível ler o ficheiro:

void le_ficheiro(FORNECE)
{

char s[90];
char *wrd="fornecedores\0";
char *s1;

FILE *fp;
fp = fopen("pos_bd.xml", "r");
if (fp==NULL)
	printf("Impossivel abrir o ficheiro pos_bd.xml\n");

while (fgets(s, 90, fp)!=NULL)
{
  if (strstr(s,wrd)!=NULL)
    {
	fgets(s,90,fp);
	s1=strchr(s,'>');
	sscanf(s1,"%d",&x.id);

	fgets(s,90,fp);
	s1=strchr(s,'>');
	sscanf(s1,"%c",&x.nome[51]);

	fgets(s,90,fp);
	s1=strchr(s,'>');
	sscanf(s1,"%d",&x.n_cont);
    }
}
}

Mas ainda nao percebi como chamo esta funcao no main... será ler_ficheiro("qualquer coisa")...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

Se não sabes como chamar funções em C, devias ler uns tutoriais antes de tentares avançar na linguagem. Falta-te o tipo do parâmetro FORNECE (a menos que seja uma macro do pré-processador). Mas também não estás a utilizar FORNECE no código da função, por isso o melhor talvez seja retirares o argumento de lá.

Depois, para chamares a função é só fazeres le_ficheiro();

Mas francamente não me parece que essa função te resolva o problema...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MarGera    0
MarGera

Boas, também estou a fazer esse projecto e temos mesmo que ler e interpretar o xml, não podemos usar processadores. Pois eu também estou com duvidas em inserir para lá os dados. Fiz as estruturas o malloc para guardar a memória para a estrutura, mas agora não faço ideia como inserir os dados no ficheiro xml.

Obrigado e cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

Não sei como tens a estrutura definida, mas basicamente será fazeres uma função que receba um apontador para uma estrutura e escreva um caracter '<', o nome, os atributos e respectivos valores, e caso não haja conteúdo (leia-se outros elementos dentro do próprio elemento, ou texto), escreve "/>"; caso tenha conteúdo, escreve '>', chama-se a ela própria novamente (recursivamente) para cada um dos conteúdos e finalmente escreve "</", o nome do elemento e '>'.

Depois é só chamar a função passando-lhe o elemento mais exterior que o XML será todo escrito.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
greed    2
greed

É o trabalho deste ano da cadeira de programação de Electro....sinceramente...podiam esforçar-se em x de virem para aqui pedinchar!

EDIT: o FORNECE  :wallbash: já ias ver uns tutoriais de C antes de te atirares ao projecto.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
greed    2
greed

O pessoal de electrónica e afins não costuma gostar muito de programação :;)

E muitas vezes nem se esforça! (digo isto por ter ajudado um que tinha dúvidas de C pa...READ THE FU**ING TUTORIAL!)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade