Jump to content
wrproject

sera possivel aceder a um documento xml atraves do c?

Recommended Posts

wrproject

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

cumps.

Share this post


Link to post
Share on other sites
Triton

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.


<3 life

Share this post


Link to post
Share on other sites
QuickFire

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

Share this post


Link to post
Share on other sites
Triton

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.


<3 life

Share this post


Link to post
Share on other sites
QuickFire

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 ?

Share this post


Link to post
Share on other sites
falco

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

Share this post


Link to post
Share on other sites
QuickFire

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 ;)

Share this post


Link to post
Share on other sites
Triton

E porque é que não podes?

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


<3 life

Share this post


Link to post
Share on other sites
QuickFire

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...

Share this post


Link to post
Share on other sites
pedrotuga

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.

Share this post


Link to post
Share on other sites
TheDark

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


Desaparecido.

Share this post


Link to post
Share on other sites
falco

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.

Share this post


Link to post
Share on other sites
QuickFire

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 :)

Share this post


Link to post
Share on other sites
falco

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.

Share this post


Link to post
Share on other sites
TheDark

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.


Desaparecido.

Share this post


Link to post
Share on other sites
QuickFire

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...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.