...
1
2
3 package main
4
5 import (
6 "fmt"
7
8 "github.com/clbanning/mxj"
9 )
10
11 var source = []byte(`<a>
12 <b>
13 <c>c</c>
14 <d>d</d>
15 </b>
16 <e>
17 <x>x</x>
18 <y>y</y>
19 <z>z</z>
20 </e>
21 <f>f</f>
22 <g>g</g>
23 </a>`)
24
25 var wants = map[string][]string{
26 "one": {
27 "a.b.c",
28 "a.e.x",
29 },
30 "two": {
31 "a.b.d",
32 "a.e.y",
33 "a.e.z",
34 },
35 "three": {
36 "a.f",
37 "a.g",
38 },
39 }
40
41 func main() {
42 m, err := mxj.NewMapXml(source)
43 if err != nil {
44 fmt.Println("err:", err)
45 return
46 }
47
48 n, err := m.NewMap(wants["one"]...)
49 if err != nil {
50 fmt.Println("err:", err)
51 return
52 }
53
54 target, err := n.XmlIndent("", " ")
55 if err != nil {
56 fmt.Println("err:", err)
57 return
58 }
59
60 fmt.Println(string(target))
61
62
63 n, _ = m.NewMap(wants["two"]...)
64 target, _ = n.XmlIndent("", " ")
65 fmt.Println(string(target))
66
67 n, _ = m.NewMap(wants["three"]...)
68 target, _ = n.XmlIndent("", " ")
69 fmt.Println(string(target))
70 }
71
View as plain text