Notifications
Clear all

pegando um conteudo xml

6 Posts
2 Usuários
0 Reactions
2,052 Visualizações
(@paulovitor)
Posts: 29
Eminent Member
Topic starter
 

colegas, estou tentando executar o codigo abaixo mas aparece o erro : o objeto nao aceita esta propriedade ou metodo.
onde estou errando?

Sub TestXML6()
    Dim XDoc As Object
    Dim tests As Object
    Set XDoc = CreateObject("MSXML2.DOMDocument")
    XDoc.async = False: XDoc.validateOnParse = False
    XDoc.Load (ThisWorkbook.Path & "teste.xml")
    Set lists = XDoc.SelectNodes("//DistributionLists/List")
    Set tests = lists
    Debug.Print tests.XML
    Set XDoc = Nothing
End Sub

arquivo xml:

<?xml version="1.0" encoding="utf-8"?>
<DistributionLists>
<List>
<Name>Recon</Name>
<TO>John Chris</TO>
<CC>Jane Ashley</CC>
<BCC>Brent</BCC>
</List>
<List>
<Name>Safety Metrics</Name>
<TO>Tom Casper</TO>
<CC>Ashley</CC>
<BCC>John</BCC>
</List>
<List>
<Name>Performance Report</Name>
<TO>Huck Ashley</TO>
<CC>Tom Andrew</CC>
<BCC>John Seema</BCC>
</List>
</DistributionLists>

 
Postado : 31/08/2017 8:18 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

paulovitor,

Veja se isso te ajuda,

Não sei exatamente o que você está tentando fazer

Sub TestXML6()
  Dim xdoc As MSXML2.DOMDocument
    Set xdoc = CreateObject("MSXML2.DOMDocument")
xdoc.async = False: xdoc.validateOnParse = False
xdoc.Load ("ThisWorkbook.Path & "teste.xml")
Set a = xdoc.SelectNodes("//DistributionLists/List")
For i = 1 To a.Length
Debug.Print a.Item(i - 1).XML
Next i

End Sub

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 31/08/2017 9:27 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

paulovitor,

Por favor informe qual o método que você utilizou para resolver o seu problema, pois isso ajuda os demais usuários do fórum na hora da pesquisa

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 01/09/2017 6:19 am
(@paulovitor)
Posts: 29
Eminent Member
Topic starter
 

oi, Syrax
aparece um erro quando tento executar seu codigo.

user defined type not defined

o que estou tentando fazer eh escrever na tela conteudo de um arquivo xml. do primeiro codigo que passei, o que eu queria era imprimir na tela

Recon
John Chris
Jane Ashley
Brent

Safety Metrics
Tom Casper
Ashley
John
...

pra isso, o metodo que me pareceu mais simples eh esse do Xpath

eu estava tentando um outro, que mostro abaixo, mas esse lance de childs me pareceu mt confuso quando eu trabalhar com arquivos maiores

Sub TestXML5()
    Dim xdoc As Object
    Set xdoc = CreateObject("MSXML2.DOMDocument")
    xdoc.async = False: xdoc.validateOnParse = False
    xdoc.Load (ThisWorkbook.Path & "pss.xml")    
    'Get Document Elements
    Set lists = xdoc.DocumentElement    
    'Traverse all elements 2 branches deep
        For Each listNode In lists.ChildNodes
            For Each fieldNode In listNode.ChildNodes
                Debug.Print "[" & fieldNode.BaseName & "] = [" & fieldNode.Text & "]"
            Next fieldNode
       Next listNode     
    Set xdoc = Nothing
End Sub
 
Postado : 01/09/2017 11:48 am
Syrax
(@syrax)
Posts: 160
Estimable Member
 

paulovitor,

Veja se isso te ajuda,

Sub TestXML6()
    Dim xdoc As Object
    Set xdoc = CreateObject("MSXML2.DOMDocument")
xdoc.async = False: xdoc.validateOnParse = False
xdoc.Load (ThisWorkbook.Path & "teste.xml")
For i = 1 To xdoc.DocumentElement.ChildNodes.Length
Debug.Print xdoc.DocumentElement.ChildNodes.Item(i - 1).Text
Next i
End Sub

Se essa resposta te ajudou e resolveu o seu problema, clique no "joinha" ao lado de citar, e não esqueça de colocar o tópico como resolvido, clicando no ✓

 
Postado : 01/09/2017 12:40 pm
(@paulovitor)
Posts: 29
Eminent Member
Topic starter
 

aparentemente sim, obrigado

 
Postado : 18/12/2017 12:00 pm