Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

:Charles:

Seletor XPath que relaciona dois elementos

Recommended Posts

Pessoal, tenho a seguinte estrutura XML:

 

CODE
<dsProdutos>

<tblProduto produtoId="1" nome="Mesa" />

<tblProduto produtoId="2" nome="Cadeira" />

<tblProdutoFoto produtoId="1" fotoId="1" urlFoto="1.jpg" />

<tblProdutoFoto produtoId="1" fotoId="2" urlFoto="2.jpg" />

<tblProdutoFoto produtoId="1" fotoId="3" urlFoto="3.jpg" />

</dsProdutos>

 

Eu quero selecionar os nomes dos produtos que possuem fotos, ou seja, no exemplo acima, quero selecionar somente "Mesa", pois "Cadeira" não tem fotos. Mas como eu faço isso na XPath?

Se "urlFoto" fosse um atributo de <tblProduto />, eu só faria /dsProdutos/tblProduto[@urlFoto]/@nome, mas aí eu só poderia ter uma foto por produto...

 

Por favor, preciso de uma ajuda mesmo :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

oh, valeu cara! :)

 

já li todo o tutorial do w3schools, mas lá não diz nada sobre isso...

acho que o meu problema deve ser de XQuery, mesmo... acho que só ocm XPath não dá pra resolver

 

mas valeu mesmo ^^

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem, mas veja...

Eu tenho elementos que são produtos, e tenho elementos que são fotos de produtos, pois um produto pode ter mais de uma foto...

 

Se fosse eu quem escrevesse o XML, eu colocaria algo como:

<produto id="1">

<foto url="1.jpg" />

<foto url="2.jpg" />

<foto url="3.jpg" />

...

</produto>

 

E aí selecionaria somente elementos <produto> que contivessem elementos <foto>.

 

Mas neste caso, como vem de outra empresa e o programador deles não está disposto a alterar o arquivo, eu tenho algo como:

 

<produto id="1" />

...

<foto url="1.jpg" id_produto="1" />

<foto url="2.jpg" id_produto="1" />

<foto url="3.jpg" id_produto="1" />

 

Entende? A única relação entre produto e foto é por um atributo... não existe hierarquia...

 

Ainda não tive tempo de examinar direito o funcionamento da XQuery, mas pelo pouquíssimo que eu li, acho que é o caminho, pois ela permite fazer com o XML o que o SQL permite fazer com bancos de dados. Aí já facilita ;)

 

 

Obrigado pela ajuda, de qualquer forma.

Continuo aguardando se alguém tiver uma solução ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.