DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
For i = 0 To Num
If myList2(i).Text = "Orion1" Then
Cells(i + 4, 1) = i + 1
Cells(i + 4, 2) = myList(i).Text
Cells(i + 4, 3) = myList2(i).Text
Cells(i + 4, 4) = myList3(i).Text
End If
Next
Anladım hocam.Teşekkür ederim.Merhaba;
XML kod yapılarında SQL gibi sorgulama seçeneği olmadığından, yine klasik VBA tekniğiyle kestirmeden şöyle bir şey olabilir ....
.Kod:For i = 0 To Num If myList2(i).Text = "Orion1" Then Cells(i + 4, 1) = i + 1 Cells(i + 4, 2) = myList(i).Text Cells(i + 4, 3) = myList2(i).Text Cells(i + 4, 4) = myList3(i).Text End If Next
Olmaz olur mu Haluk Bey. "XPath", tam bu tür işler için.XML kod yapılarında SQL gibi sorgulama seçeneği olmadığından,
Merhaba.Zeki Bey; uyarınız için teşekkürlerimi kabul edin lütfen ....
Evren Bey; Zeki Beyin önerisi doğrultusunda XPath kullanarak "Orion1" kullanıcısına ait veriler, ekli dosyadaki kodlarla alınmaktadır.
Dosyada ayrıca, 9 veya daha fazla cevap yazılmış konuları listelemek için kullanılacak tanımlamayı da bilgi amaçlı koydum.
.
Sub GetData_ExcelWebTr_3()
'Haluk
'06/08/2018
Dim XDoc As Object, strURL As String
Dim myList As Object
Dim Num As Byte
Range("A4:D100") = ""
Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.async = False
XDoc.validateOnParse = False
strURL = "https://www.excel.web.tr/forums/-/index.rss"
XDoc.Load strURL
'Orion1 isimli kullanıcının mesajlarını listelemek için:
Set myList = XDoc.SelectNodes("//channel/item[dc:creator='Orion1']")
'9 veya daha fazla cevap yazılmış konuları listelemek için:
'Set myList = XDoc.SelectNodes("//channel/item[slash:comments>=9]")
Num = myList.Length - 1
If myList.Length = 0 Then GoTo SafeExit:
For i = 0 To Num
Cells(i + 4, 1) = i + 1
Cells(i + 4, 2) = myList(i).SelectSingleNode("title").Text
Cells(i + 4, 3) = myList(i).SelectSingleNode("dc:creator").Text
Cells(i + 4, 4) = myList(i).SelectSingleNode("slash:comments").Text
Next
SafeExit:
Set myList = Nothing
Set XDoc = Nothing
End Sub
Haluk bey yardımlarınız için tekrar teşekkür ederim.Evren Bey; hemen bir altındaki satır ile yer değiştirin ....
Not: 31 No'lu mesaj ekindeki dosya güncellendi.
.
Evren Bey;.......
...
Yarında nodechild e bakabilirmiyiz.
Haluk hocam çok sağolun.Böylece bu konuda hallolmuş oldu.Evren Bey;
Yukarıda 28 No'lu mesajınızda bahsettiğiniz konu ile ilgili olarak da ekteki dosyayı hazırladım...
Bu dosyada, daha önceki dosyada yapılan iş (foruma yazılan son 20 mesaj ve ilgili özellikler) bu kez ChildNodes özelliği kullanılarak yapılmıştır.
.
'3 ve 3 ten büyük,9 ve 9 küçük cevap verilmiş olan cevapların görüntülenmesi.
Set myList = XDoc.SelectNodes("//channel/item[slash:comments>=3 and slash:comments<=9]")
Sub GetData_ExcelWebTr_3()
'Haluk
'06/08/2018
Dim XDoc As Object, strURL As String
Dim myList As Object
Dim Num As Byte
Range("A4:D100") = ""
Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.async = False
XDoc.validateOnParse = False
strURL = "https://www.excel.web.tr/forums/-/index.rss"
XDoc.Load strURL
'Hepsini listelemek için
'Set myList = XDoc.SelectNodes("//channel/item")
'Orion1 isimli kullanıcının mesajlarını listelemek için:
'Set myList = XDoc.SelectNodes("//channel/item[dc:creator='Orion1']")
'7 ve 7 den küçük cevap yazılmış konuları listelemek için
'Set myList = XDoc.SelectNodes("//channel/item[slash:comments<=7]")
'3 ve 3 ten büyük,9 ve 9 küçük cevap verilmiş olan cevapların gösterimi
Set myList = XDoc.SelectNodes("//channel/item[slash:comments>=3 and slash:comments<=9]")
If myList.Length = 0 Then GoTo SafeExit
Num = myList.Length - 1
For i = 0 To Num
Cells(i + 4, 1) = i + 1
Cells(i + 4, 2) = myList(i).SelectSingleNode("title").Text
Cells(i + 4, 3) = myList(i).SelectSingleNode("dc:creator").Text
Cells(i + 4, 4) = myList(i).SelectSingleNode("slash:comments").Text
Next
SafeExit:
Set myList = Nothing
Set XDoc = Nothing
End Sub
Teşekkür ederim.Hocam İnceleyeceğim.Evren Bey, önceki mesajımda da belirtmiştim. Aşağıdaki bağlantıyı inceleyin...
https://www.w3schools.com/xml/xpath_intro.asp