...
1 package mxj
2
3 import (
4 "fmt"
5 "testing"
6 )
7
8 func TestSetSubkeyFieldSeparator(t *testing.T) {
9 PrependAttrWithHyphen(true)
10
11 fmt.Println("----------- TestSetSubkeyFieldSeparator")
12 data := `
13 <doc>
14 <elem attr="1">value 1</elem>
15 <elem attr="2">value 2</elem>
16 <elem attr="3">value 3</elem>
17 </doc>`
18
19 m, err := NewMapXml([]byte(data))
20 if err != nil {
21 t.Fatal(err)
22 }
23 vals, err := m.ValuesForKey("elem", "-attr:2:text")
24 if err != nil {
25 t.Fatal(err)
26 }
27 if len(vals) != 1 {
28 t.Fatal(":len(vals);", len(vals), vals)
29 }
30 if vals[0].(map[string]interface{})[textK].(string) != "value 2" {
31 t.Fatal(":expecting: value 2; got:", vals[0].(map[string]interface{})[textK])
32 }
33
34 SetFieldSeparator("|")
35 defer SetFieldSeparator()
36 vals, err = m.ValuesForKey("elem", "-attr|2|text")
37 if err != nil {
38 t.Fatal(err)
39 }
40 if len(vals) != 1 {
41 t.Fatal("|len(vals);", len(vals), vals)
42 }
43 if vals[0].(map[string]interface{})[textK].(string) != "value 2" {
44 t.Fatal("|expecting: value 2; got:", vals[0].(map[string]interface{})[textK])
45 }
46 }
47
48
View as plain text