LEITURA XML COM TAG PAI E TAG FILHO COM NOME IGUAL
Boa Tarde a Todos.
Estou com um problema em uma leitura de um xml.
Faço o Load do xml
Pego o valor da Tag que eu preciso
Porem tenho um problema, essa TAG é repetida no mesmo xml, o que muda é o conteudo da tag pai delas.
Eu preciso da Type = Email
Alguem pode me ajudar?
Obrigado
Estou com um problema em uma leitura de um xml.
Faço o Load do xml
xml.LoadXml(leituraXML)
Pego o valor da Tag que eu preciso
dsComprador.strEmailPrincipal = xml.GetElementsByTagName([Ô]corecom:Value[Ô]).Item(0).InnerText.ToString
Porem tenho um problema, essa TAG é repetida no mesmo xml, o que muda é o conteudo da tag pai delas.
Eu preciso da Type = Email
<corecom:Contact>
<corecom:Type>EMAIL</corecom:Type>
<corecom:SubType>PERSONAL</corecom:SubType>
<corecom:Value>eduilsonp@herbalife.com</corecom:Value>
<corecom:IsPrimary>Y</corecom:IsPrimary>
<corecom:IsActive>A</corecom:IsActive>
</corecom:Contact>
<corecom:Contact>
<corecom:Type>PHONE</corecom:Type>
<corecom:SubType>MAILING</corecom:SubType>
<corecom:Value>11-38797800</corecom:Value>
<corecom:IsPrimary>Y</corecom:IsPrimary>
<corecom:IsActive>A</corecom:IsActive>
</corecom:Contact>
Alguem pode me ajudar?
Obrigado
Tenta mais ou menos isso....
Xml.LoadXml(leituraXML)
Dim listaTags As XmlNodeList = Xml.GetElementsByTagName([Ô]corecom:Contact[Ô])
[ô]// Faz um loop procurando a Tag informada
For Each _xml As XmlElement In listaTags
dsComprador.strEmailPrincipal = _xml.GetElementsByTagName([Ô]corecom:Value[Ô]).Item(0).InnerText.ToString
Next
Xml.LoadXml(leituraXML)
Dim listaTags As XmlNodeList = Xml.GetElementsByTagName([Ô]corecom:Contact[Ô])
[ô]// Faz um loop procurando a Tag informada
For Each _xml As XmlElement In listaTags
dsComprador.strEmailPrincipal = _xml.GetElementsByTagName([Ô]corecom:Value[Ô]).Item(0).InnerText.ToString
Next
Encontrei algumas coisas aqui para voce:
http://www.macoratti.net/10/08/vbn_xml1.htm
http://www.macoratti.net/vbn5_xml.htm
http://www.oficinadanet.com.br/artigo/2214/lendo_xml_com_vb.net
http://social.msdn.microsoft.com/forums/pt-br/504/thread/2ECD6B83-3D85-4A73-8C4C-C16D0C90F67B
vlw
http://www.macoratti.net/10/08/vbn_xml1.htm
http://www.macoratti.net/vbn5_xml.htm
http://www.oficinadanet.com.br/artigo/2214/lendo_xml_com_vb.net
http://social.msdn.microsoft.com/forums/pt-br/504/thread/2ECD6B83-3D85-4A73-8C4C-C16D0C90F67B
vlw
cara,
Veja um exemplo que eu tenho aqui.
Eu utilizei um XML que eu tenho, com várias tags chamadas [Ô]member[Ô] e uma dessas tagas tem o email do cara.
Veja como eu fiz. Já que no seu segundo corecom:value só traz números, verifique em qual deles tem o @.
Esta foi uma sugestão. Tenta adaptar ao seu código e à s suas tags pra ver o que acontece.
Veja um exemplo que eu tenho aqui.
Eu utilizei um XML que eu tenho, com várias tags chamadas [Ô]member[Ô] e uma dessas tagas tem o email do cara.
Veja como eu fiz. Já que no seu segundo corecom:value só traz números, verifique em qual deles tem o @.
Dim XML As New Xml.XmlDocument
Dim Elemento As Xml.XmlNodeList
XML.Load(Application.StartupPath & [txt-color=#e80000][Ô]\User_Dados.xml[Ô][/txt-color])
Elemento = XML.GetElementsByTagName([txt-color=#e80000][Ô]member[Ô][/txt-color]) [txt-color=#007100][ô]Troque member por corecom:Value ou corecom. O importante é retornar uma lista com os dados separados.[/txt-color]
[txt-color=#0000f0]For Each [/txt-color]Item As Xml.XmlElement [txt-color=#0000f0]In[/txt-color] Elemento
If Item.InnerText.Contains([txt-color=#e80000][Ô]@[Ô][/txt-color]) Then
MsgBox(Item.InnerText)
[txt-color=#0000f0] Exit For
End If
Next[/txt-color]
XML = Nothing
Esta foi uma sugestão. Tenta adaptar ao seu código e à s suas tags pra ver o que acontece.
JOSIMARCSILVA, deu erro
dsComprador.strEmailPrincipal = _xml.GetElementsByTagName([Ô]corecom:Value[Ô]).Item(0).InnerText.ToString
JABA, infelizmente nenhum faz o que realmente preciso
dsComprador.strEmailPrincipal = _xml.GetElementsByTagName([Ô]corecom:Value[Ô]).Item(0).InnerText.ToString
JABA, infelizmente nenhum faz o que realmente preciso
Dim reader As XmlTextReader = New XmlTextReader(txtCaminhoXML.Text)
Do While (reader.Read())
Select Case reader.NodeType
Case XmlNodeType.Element
If reader.HasAttributes Then [ô]Se existirem atributos
While reader.MoveToNextAttribute()
[ô]Pega o valor do atributo.
msgbox(reader.Value)
End While
End If
Case XmlNodeType.Text
[ô]pega o valor do elemento
msgbox(reader.Value)
End Select
Loop
é só trocar as mensagens que coloquei por um (if) e verifcar o valor atual do loop com o que você quer retorna-lo. Quando encontrar o valor, é só sair do loop com exit loop ou exit sub.
vlw
Do While (reader.Read())
Select Case reader.NodeType
Case XmlNodeType.Element
If reader.HasAttributes Then [ô]Se existirem atributos
While reader.MoveToNextAttribute()
[ô]Pega o valor do atributo.
msgbox(reader.Value)
End While
End If
Case XmlNodeType.Text
[ô]pega o valor do elemento
msgbox(reader.Value)
End Select
Loop
é só trocar as mensagens que coloquei por um (if) e verifcar o valor atual do loop com o que você quer retorna-lo. Quando encontrar o valor, é só sair do loop com exit loop ou exit sub.
vlw
Car, se nenhum dos exemplos pôde te ajudar, poste aà o arquivo XML ou um exemplo dele para que possamos baixar e fazer testes em nossaas máquinas.
Tópico encerrado , respostas não são mais permitidas