Jump to content


Photo

Ajuda Com Xml


  • Faça o login para participar
9 replies to this topic

#1 salsa

salsa

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado
  • Localidade:Porto Alegre

Posted 06/01/2004, 17:40

Estou tentando trabalhar com XML usando delphi, eu jah procurei varios ex, mais nenhum
manipula do jeito q eu quero, por isso estou usando um componente de XML q trabalha mto bem
com o XML. Gostaria de saber, como faço as seguintes funçoes ... usando XML mesmo jah que
o componente interpreta comandos XML.



[meu arquivo esta assim:]


<?xml version="1.0"?>
<spim>
	<rafael>
  <nick>rafael</nick>
  <status>online</status>
	</rafael>
	<pedro>
  <nick>pedro</nick>
  <status>online</status>
	</pedro>  
        <edinho>
                <nick>edinho</nick>
                <status>offline</status>
        </edinho>
</spim>



[perguntas:]



1. Gostaria de saber como pegar todos os items e adicionar em uma var, ex ... ele pega do
primeiro child o nick rafael, pedro e edinho e por numa var.

2. Como faço uma pesquisa ex: quero pegar os valores do child rafael, ex ele teria que me
retornar: rafael e online.

3. se eu quiser deletar apenas o child rafael como pedro como faço?
<pedro>
<nick>pedro</nick>
<status>online</status>
</pedro>


valeuz :P
+ www.rafinha.org

#2 cybermix

cybermix

    andrewsmedina.com.br

  • Ex-Admins
  • 3586 posts
  • Sexo:Não informado
  • Localidade:Não sou desse planeta não!!!!
  • Interesses:python, fireworks, linux, php, flash...

Posted 06/01/2004, 17:52

fazer isso é simples, mas voce tem que falar que componente esta usando par manipular o xml, ele por si só é apenas esses codigos ai.

serai o DOM ?
www.andrewsmedina.com.br

#3 Guilherme Blanco

Guilherme Blanco

    Loading...

  • Conselheiros
  • 891 posts
  • Sexo:Masculino
  • Localidade:São Carlos - SP/Brasil
  • Interesses:Programação Web e minha namorada (Maria Camila).

Posted 06/01/2004, 21:14

Estranha sua estrutura XML, salsa...

Vamos melhorá-la:

Você utiliza tags como "pedro", "roberto"... Isso não é vantajoso, em termos de estruturação de dados.
Talvez a inclusão de uma tag chamada "membro" fosse mais útil que "pedro".

Dessa forma:
<?xml version="1.0"?>

<membro>
 <nick>rafael</nick>
 <status>online</status>
</membro>
<membro>
 <nick>pedro</nick>
 <status>online</status>
</membro>  


ou ainda melhor...

<?xml version="1.0"?>

<membro nick="rafael" status="on" />
<membro nick="pedro" status="on" />


Melhorada a estrutura, agora você pode procurar por analisadores léxicos de XML, em qualquer linguagem que queira, bastando acessar o site com o conteúdo correto.
Nosso foco não é Delphi, e sim programação pra web. Eu tenho alguns exemplos de analisadores em JS, PHP, caso queira... mas programação win/linux é fora do escopo atual do Fórum. Mantemos as seções de programação, mas elas não possuem especialistas suficientes para mantê-las.

[]s,
<script language="WebFórum">
// Dados:
Nome("Guilherme Blanco");
Localidade("São Carlos - SP/Brasil");
Cargo("Manutenção");
</script>

#4 salsa

salsa

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado
  • Localidade:Porto Alegre

Posted 07/01/2004, 15:29

guilherme eu fiz do jeito que voce falou tb soh fiz akele exemplo pra mostrar +/- oq eu queria .. mais eu simplifiquei do jeito que voce disse:

<?xml version="1.0"?>

<membro nick="rafael" status="on" />
<membro nick="pedro" status="on" />

e cybermix ... eu to usando o XMLDocument pra delphi .... isso ele usa axu q uns eskemas de DOM sim ...
+ www.rafinha.org

#5 cybermix

cybermix

    andrewsmedina.com.br

  • Ex-Admins
  • 3586 posts
  • Sexo:Não informado
  • Localidade:Não sou desse planeta não!!!!
  • Interesses:python, fireworks, linux, php, flash...

Posted 07/01/2004, 15:47

leia aqui:

http://www.imasters....?codcoluna=1417

http://www.imasters....?codcoluna=1462

http://www.imasters....?codcoluna=1539
www.andrewsmedina.com.br

#6 salsa

salsa

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado
  • Localidade:Porto Alegre

Posted 07/01/2004, 23:24

cara INFELIZMENTE eu vi esse metodo,e achei muito porco a forma com que ele trabalha o XML, eu consegui fazer sem problemas, porem se voce notar, quando voce DELETA um registro do xml, vc esta "deletando" entre aspas, pois ele muda as tags dizendo que deletou mas mantem o registro la, ou seja .. mesmo as tags dizendo que nao existe o registro no arquivo, ele continua armazenando dados antigos.

ou seja, o arquivo vai ficando imenso de acordo com modificaçoes constantes .. INFELIZMENTE.

veja soh como estou trabalhando com o XML no meu delphi usando o componente XMLDocument que esta na palheta (internet)

Para adicionar:
procedure TForm1.Button1Click(Sender: TObject);
var Registro: IXMLNode;
    Valores: IXMLNode;
begin
 XMLDocument1.Active := false;
 XMLDocument1.Active := true;
 XMLDocument1.LoadFromFile('arquivo.xml');

 Registro := XMLDocument1.DocumentElement.AddChild(edit1.Text);

 Valores := Registro.AddChild('nick');
 Valores.Text := edit1.Text;

 Valores := Registro.AddChild('status');
 Valores.Text := edit2.Text;

 XMLDOCument1.SaveToFile('arquivo.xml');
end;


o meu problema esta apenas com oque eu disse na mensagem que abriu o topico, no qual tentei fazer e nao consegui.
:(
+ www.rafinha.org

#7 salsa

salsa

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado
  • Localidade:Porto Alegre

Posted 08/01/2004, 17:36

fazer isso é simples, mas voce tem que falar que componente esta usando par manipular o xml, ele por si só é apenas esses codigos ai.

serai o DOM ?

isso mesmo .. to usando DOM...

vc tem ideia de como eu faço pra pegar o valor de um registro:

<?xml version="1.0"?>
<spim>
	<registro nick="rafael" status="online"/>
	<registro nick="pedro" status="offline"/>
	<registro nick="joao" status="offline"/>
                <registro nick="edinho" status="online"/>
</spim>

procurar pelo registro com nick "rafael" e pegar o valor de "status".
+ www.rafinha.org

#8 cybermix

cybermix

    andrewsmedina.com.br

  • Ex-Admins
  • 3586 posts
  • Sexo:Não informado
  • Localidade:Não sou desse planeta não!!!!
  • Interesses:python, fireworks, linux, php, flash...

Posted 08/01/2004, 17:42

eu so sei fazer isso usando asp + dom + xml. mas vo te passar a logica

eu pego e listo os dados do xml e uso um if. se o valor atual fo = rafael eu imprimo o valor na tela.

epsero ter ajudado
www.andrewsmedina.com.br

#9 salsa

salsa

    Normal

  • Usuários
  • 93 posts
  • Sexo:Não informado
  • Localidade:Porto Alegre

Posted 08/01/2004, 19:23

fazer em ASP oq eu quero fazer q eu perguntei no começo do topico ficaria como?
+ www.rafinha.org

#10 cybermix

cybermix

    andrewsmedina.com.br

  • Ex-Admins
  • 3586 posts
  • Sexo:Não informado
  • Localidade:Não sou desse planeta não!!!!
  • Interesses:python, fireworks, linux, php, flash...

Posted 09/01/2004, 02:03

preste atencao ok?

eu te passei a logica, pq nao entendo de delphi.

vc tem ideia de como eu faço pra pegar o valor de um registro:
procurar pelo registro com nick "rafael" e pegar o valor de "status".


a logica

eu pego e listo os dados do xml e uso um if. se o valor atual fo = rafael eu imprimo o valor na tela.


B)
www.andrewsmedina.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq