GUI (Grafiksel Kullanıcı Arayüzü)
XML Parsing (Ayrıştırma)
Bu yazımıza Golang üzerinde XML dosyalarını işlemeyi öğreneceğiz. Bu işlemin yapabileceğimiz hali hazırda standart Golang paketleri ile gelen “encoding/xml” paketi vardır. Örneğimize geçelim. veri.xml isminde aşağıdaki gibi bir belgemiz olduğunu varsayalım.
1
<?xml version="1.0" encoding="UTF-8"?>
2
<üyeler>
3
<üye tip="admin">
4
<isim>Ahmet</isim>
5
<sosyal>
6
<facebook>https://facebook.com</facebook>
7
<twitter>https://twitter.com</twitter>
8
<youtube>https://youtube.com</youtube>
9
</sosyal>
10
</üye>
11
<üye tip="okuyucu">
12
<isim>Mehmet</isim>
13
<sosyal>
14
<facebook>https://facebook.com</facebook>
15
<twitter>https://twitter.com</twitter>
16
<youtube>https://youtube.com</youtube>
17
</sosyal>
18
</üye>
19
</üyeler>
Copied!
XML Belgemizi Okuyalım
Bu işlemimizi yaparken “io/ioutil” ve “os” paketlerimizden faydalanacağız. Hemen kodlarımızı görelim.
1
package main
2
import (
3
"fmt"
4
"os"
5
)
6
func main() {
7
// XML dosyamızı açıyoruz
8
xmlDosya, err := os.Open("veri.xml")
9
// Hata var mı diye kontrol ediyoruz
10
if err != nil {
11
fmt.Println(err)
12
}
13
fmt.Println("veri.xml dosyası başarıyla açıldı")
14
// XML dosyamızı kapatmayı unutmuyoruz.
15
defer xmlDosya.Close()
16
}
Copied!
Eğer XML dosyası açılırken hata oluşmazsa çıktımız olumlu yönde olacaktır. Şimde XML dosyasındaki verileri struct’ımıza kaydedelim. Parsing işlemi de yapacağımızdan dolayı “encoding/xml” paketini de içe aktarıyoruz. Hemen kodumuz geliyor.
1
package main
2
import (
3
"encoding/xml"
4
"fmt"
5
"io/ioutil"
6
"os"
7
)
8
type Üyeler struct {
9
Alan xml.Name `xml:"üyeler"`
10
Üyeler []Üye `xml:"üye"`
11
}
12
type Üye struct {
13
Alan xml.Name `xml:"üye"`
14
Tip string `xml:"tip,attr"`
15
İsim string `xml:"isim"`
16
Sosyal Sosyal `xml:"sosyal"`
17
}
18
type Sosyal struct {
19
Alan xml.Name `xml:"sosyal"`
20
Facebook string `xml:"facebook"`
21
Twitter string `xml:"twitter"`
22
Youtube string `xml:"youtube"`
23
}
24
func main() {
25
// XML dosyamızı açıyoruz
26
xmlDosya, err := os.Open("veri.xml")
27
// Hata var mı diye kontrol ediyoruz
28
if err != nil {
29
fmt.Println(err)
30
}
31
// XML dosyamızı kapatmayı unutmuyoruz.
32
defer xmlDosya.Close()
33
//XML dosyamızı okuyoruz (byte olarak geliyor)
34
byteDeğer, _ := ioutil.ReadAll(xmlDosya)
35
//Yerleştirme işlemi için değişken oluşturuyoruz.
36
var üyeler Üyeler
37
xml.Unmarshal(byteDeğer, &üyeler)
38
fmt.Println(üyeler.Üyeler)
39
}
Copied!
Last modified 1yr ago
Copy link