LEITURA XML COM TAG PAI E TAG FILHO COM NOME IGUAL

LEANDRO 08/08/2012 12:13:38
#407487
Boa Tarde a Todos.
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
JOSIMARCSILVA 08/08/2012 12:58:12
#407493
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
JABA 08/08/2012 13:00:33
#407494
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
PEGUDO 08/08/2012 15:46:18
#407520
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 @.
    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.
LEANDRO 08/08/2012 15:47:26
#407521
JOSIMARCSILVA, deu erro
dsComprador.strEmailPrincipal = _xml.GetElementsByTagName([Ô]corecom:Value[Ô]).Item(0).InnerText.ToString

JABA, infelizmente nenhum faz o que realmente preciso
JABA 08/08/2012 20:27:49
#407534
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
PEGUDO 09/08/2012 07:10:14
#407549
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