...

Source file src/github.com/clbanning/mxj/v2/examples/partial.go

Documentation: github.com/clbanning/mxj/v2/examples

     1  // https://github.com/clbanning/mxj/issues/53
     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  	// the rest of the wants
    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