• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

wrproject

sera possivel aceder a um documento xml atraves do c?

20 mensagens neste tópico

boas pessoal, gostaria de saber se atraves do c posso aceder e manipular documentos xml, se alguem souber, por favor poste ai.

cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License. XML itself is a metalanguage to design markup languages, i.e. text language where semantic and structure are added to the content using extra "markup" information enclosed between angle brackets. HTML is the most well-known markup language. Though the library is written in C a variety of language bindings make it available in other environments.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não quero estar a abrir um novo tópico, por isso vou "chatear" aqui.

Eu tenho uma dúvida. Como é que posso fazer o parse de um documento xml sem bibliotecas externas ?

Não preciso de validações, e o xml vai ser a coisa mais simples possível.

Se alguém souber um método, que me dê uma luz, visto que estou mesmo às escuras ;)

Abraço,

Pedro Diogo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tenho uma dúvida. Como é que posso fazer o parse de um documento xml sem bibliotecas externas ?

Tens de escrever o teu próprio parser, o que digamos não é muito fácil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso era o que pretendia, mas alguém conhece links teóricos para a criação de um parser xml, se possível com aplicação prática em C ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui vai o código de um parser XML em ansi C, sempre podes tirar umas dicas para fazeres o teu próprio. ;)

Aqui!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um Parser de XMl que seja realmente útil é uma coisa bastante complexa... Porque é que não queres utilizar a libxml?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um Parser de XMl que seja realmente útil é uma coisa bastante complexa... Porque é que não queres utilizar a libxml?

Não é bem não querer, é mais uma questão de não poder...

Anyway, quarta feira ou assim digo como me safei ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E porque é que não podes?

Tenho quase a certeza que é um trabalho para a faculdade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E porque é que não podes?

Tenho quase a certeza que é um trabalho para a faculdade.

Exacto...

Mania de "inovar", depois não dão as informações suficientes...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar uma biblioteca de regex?

Se tiveres é simples... é escrever uma expressão regular que apanhe elementos e ter o cuidado para que seja greedy, ou seja, que apanhe o máximo possivel. Depois é correr isso recursivamente e ir salvando par ama estrutura de dados... uma árvore teoricamente é o mais apropriado para este caso. Mas isso depende da natureza dos teus dados e da tua aplicação.

Se não puderes apanhar regex... tens que ir caracter a carater à procura da tag de fecho de cada elemento. Mas tens que ir armazenando subelementos para não correres o risco de quebrares um elemento ao meio quando encontrares um subelemento do mesmo tipo.

Não estou a ver outra forma de fazer isto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Recursivamente não é muito complicado de fazer. Pode é ocupar muito espaço na memória.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema é complexo, porque criar um parser não é apenas meter as coisas dentro de uma estrutura de dados, é que a estrutura de dados, tem que representar um documento, e tem que ser fácil implementar uma interface para poder manipular os vários aspectos do documento. Para além disso o parsing tem que ter em conta coisas como o documento ser, ou não ser válido, ser, ou não ser bem formado, o enconding de caracteres, e muitas outras regras que fazem parte da especificação do XML.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema é complexo, porque criar um parser não é apenas meter as coisas dentro de uma estrutura de dados, é que a estrutura de dados, tem que representar um documento, e tem que ser fácil implementar uma interface para poder manipular os vários aspectos do documento. Para além disso o parsing tem que ter em conta coisas como o documento ser, ou não ser válido, ser, ou não ser bem formado, o enconding de caracteres, e muitas outras regras que fazem parte da especificação do XML.

Como disse atrás o problema da validação (complexa, claro que convem detectar se as tags abrem e fecham nos sítios certos), encoding e outros não se aplica. Apenas é necessário ler o arquivo, e interpretar o contudo.

Como disse, lá para quarta feira vou ver o que eles pretendem e falar com a professora responsável, visto que mandei um mail e apenas me disseram que não podia usar libs externas, não como resolver o meu problema...

Obrigado a todos :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O encoding é uma das coisas que faz parte do standard (UTF-8 por omissão no XML). E é importante para que os conteúdos não sejam "destruídos" pelo parser.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto é um trabalho de faculdade. Não tem que estar ao nível de uma aplicação empresarial. Nem eles o poderiam exigir, dado o tempo permitido para entregar o trabalho e a (pouca) experiência da maioria dos alunos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual XML qual quê...

Basicamente é só por dizer que usamos um file com extensão xml e com tags!

O pretendido é que se copie o conteúdo entre <123> </123>, com os 123 todos predefinidos no xml...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então C não é a melhor linguagem para isso, o AWK era muito melhor...

0

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