TinyXML – Parte 2

No primeiro tutorial, eu mostrei como pegar dados de atributos das tags. Hoje, vou ensinar como pegar os dados contidos dentro das tags. Vou aproveitar para mostrar como fazer um request de XML de um servidor com a DBXmlRequest e parsear com a TinyXML!

Eu ainda não liberei nenhum release da DBXmlRequest, mas essa semana ainda libero, então vou aproveitar para mostrar como usá-la!

Você tem duas opções para usá-la, uma delas é incluindo os arquivo DBXmlRequest.h e o DBXmlRequest.cpp ao seu projeto, ou então utilizar a versão já compilada, incluindo a DBXmlRequest e linkando a libDBXmlRequest.a.

Vamos incluir aqui os dois arquivos no projeto, aí basta incluir ela no arquivo que for usar:

#include "DBXmlRequest.h"

Vamos supor que você queira baixar o arquivo (fictício) http://www.seusite.com/arquivo.xml, então faríamos assim:

TiXmlDocument *tixml = NULL;
DBXmlRequest *xml = new DBXmlRequest("www.seusite.com", "arquivo.xml");
if (xml->Download())
{
   tixml = xml->getTiXmlDocument();
}
else
{
   cout << "Erro ao baixar arquivo.";
}&#91;/sourcecode&#93;
Pronto, a partir deste ponto, você pode usar a &#91;b&#93;tixml&#91;/b&#93; normalmente! hehehe

Bom, mas vamos então ao tutorial né! xD

Para pegar os atributos, nós utilizávamos o método <b>Attribute</b> da classe TiXmlElement. Já para pegarmos o conteúdo da tag (o texto que contém nela), nós usamos o método <b>GetText</b>.

Um exemplo prático, se nós temos o seguinte arquivo XML:
<?xml version="1.0" ?>
<Agenda>
   <reg>
      <nome>Bruno</nome>
      <tel>2222-2222</tel>
   </reg>
</Agenda>

Para recuperarmos os dados, faríamos assim:
TiXmlDocument *xml = new TiXmlDocument(“teste.xml”);
xml->LoadFile();

TiXmlElement *reg = xml->FirstChildElement(“Agenda”)->FirstChildElement(“reg”);

cout << "Nome: " << reg->FirstChildElement(“nome”)->GetText() << endl; cout << "Telefone: " << reg->FirstChildElement(“tel”)->GetText() << endl;[/sourcecode] É bem fácil, não é? Pretendo no próximo tutorial explicar como criar um arquivo xml, com a TinyXML! =D Falou!

4 Respostas

  1. Estou com um problema para carregar a tiny no meu projeto.
    Trabalho com o Visual Studio, como faco para carregar?!

    obrigado!

  2. Então, eu nunca instalei a TinyXML no Visual Studio, se não tiver uma versão binária dela, talvez você tenha que compilar.

    Entre na página do projeto TinyXML no SourceForge e veja sobre isso.

    OBrigado.

  3. Consegui já!!!
    obrigado!

    Estou com uma outra duvida!
    Não estou conseguindo acessar os atributos do meu xml usando o TiXmlAttribute.
    e nem retornar qualquer valor.
    Só estou conseguindo acessar os dados das tah’s
    usando funções que retornam void.
    E eu preciso que me retornem os valores.

    Como eu faço para usar essas funções?

    Obrigado!

  4. Utilize o método Attribute(“nome_do_atributo”);, que retorna uma String (vetor de char).🙂

    Qualquer dúvida posta ae! ^^

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: