none
Dúvida com XML RRS feed

  • Pergunta

  • Alguém saberia me dizer pq não funciona ?

     

    declare @valorxml xml

    set @valorxml = '<propostas>

    <proposta id="1">Arages Consultoria</proposta>

    <proposta id="2">EManage IT</proposta>

    <proposta id="3">X90 Serviços</proposta>

    </propostas>'

    select @valorxml.value('(/propostas/proposta[@id=1])','int')

     

    quarta-feira, 1 de outubro de 2008 11:20

Respostas

  • Bom Dia,

     

    A julgar pela construção, imagino que você deseje obter a proposta cujo o ID é 1.

    Do ponto de vista da XQuery, o filtro @ID = 1 está devidamente aplicado, mas o tipo de dados está incorreto.

    Há também o problema da atomicidade já que o método value exige valores atômicos e se houvesse mais uma proposta com ID = 1, não estaríamos garantindo a atomicidade. Assim sendo, tente o seguinte:

     

    Code Snippet

    declare @valorxml xml

    set @valorxml = '<propostas>

    <proposta id="1">Arages Consultoria</proposta>

    <proposta id="2">EManage IT</proposta>

    <proposta id="3">X90 Serviços</proposta>

    </propostas>'

     

    select @valorxml.value('(/propostas/proposta[@id=1])[1]','varchar(50)')

     

     

    [ ]s,

     

    Gustavo

    quarta-feira, 1 de outubro de 2008 12:02

Todas as Respostas

  • Bom Dia,

     

    A julgar pela construção, imagino que você deseje obter a proposta cujo o ID é 1.

    Do ponto de vista da XQuery, o filtro @ID = 1 está devidamente aplicado, mas o tipo de dados está incorreto.

    Há também o problema da atomicidade já que o método value exige valores atômicos e se houvesse mais uma proposta com ID = 1, não estaríamos garantindo a atomicidade. Assim sendo, tente o seguinte:

     

    Code Snippet

    declare @valorxml xml

    set @valorxml = '<propostas>

    <proposta id="1">Arages Consultoria</proposta>

    <proposta id="2">EManage IT</proposta>

    <proposta id="3">X90 Serviços</proposta>

    </propostas>'

     

    select @valorxml.value('(/propostas/proposta[@id=1])[1]','varchar(50)')

     

     

    [ ]s,

     

    Gustavo

    quarta-feira, 1 de outubro de 2008 12:02
  • Maia,

     

    A estrutura do XML esta correta, na verdade estava faltando o nosso amigo informar o formato do valor de retorno para que o Value possa devolver a informação!!!

    quarta-feira, 1 de outubro de 2008 12:07
  • Oi Gustavo,

     

    Era isso mesmo. Precisava filtrar com base nessa condição.

     

    Valews

    quarta-feira, 1 de outubro de 2008 15:06