func NewMapsFromXmlFile(name string) (Maps, error) {
	fi, err := os.Stat(name)
	if err != nil {
		return nil, err
	}
	if !fi.Mode().IsRegular() {
		return nil, fmt.Errorf("file %s is not a regular file", name)
	}
	fh, err := os.Open(name)
	if err != nil {
		return nil, err
	}
	defer fh.Close()
	am := make([]Map, 0)
	for {
		m, raw, err := NewMapXmlReaderRaw(fh)
		if err != nil && err != io.EOF {
			return am, fmt.Errorf("error: %s - reading: %s", err.Error(), string(raw))
		}
		if len(m) > 0 {
			am = append(am, m)
		}
		if err == io.EOF {
			break
		}
	}
	return am, nil
}
NewMapsFromXmlFile - creates an array from a file of XML values.
package mxj
import (
	"fmt"
	"io"
	"os"
)
type Maps []Map
func NewMaps() Maps {
	return make(Maps, 0)
}
type MapRaw struct {
	M Map
	R []byte
}
func NewMapsFromJsonFile(name string) (Maps, error) {
	fi, err := os.Stat(name)
	if err != nil {
		return nil, err
	}
	if !fi.Mode().IsRegular() {
		return nil, fmt.Errorf("file %s is not a regular file", name)
	}
	fh, err := os.Open(name)
	if err != nil {
		return nil, err
	}
	defer fh.Close()
	am := make([]Map, 0)
	for {
		m, raw, err := NewMapJsonReaderRaw(fh)
		if err != nil && err != io.EOF {
			return am, fmt.Errorf("error: %s - reading: %s", err.Error(), string(raw))
		}
		if len(m) > 0 {
			am = append(am, m)
		}
		if err == io.EOF {
			break
		}
	}
	return am, nil
}
func NewMapsFromJsonFileRaw(name string) ([]MapRaw, error) {
	fi, err := os.Stat(name)
	if err != nil {
		return nil, err
	}
	if !fi.Mode().IsRegular() {
		return nil, fmt.Errorf("file %s is not a regular file", name)
	}
	fh, err := os.Open(name)
	if err != nil {
		return nil, err
	}
	defer fh.Close()
	am := make([]MapRaw, 0)
	for {
		mr := new(MapRaw)
		mr.M, mr.R, err = NewMapJsonReaderRaw(fh)
		if err != nil && err != io.EOF {
			return am, fmt.Errorf("error: %s - reading: %s", err.Error(), string(mr.R))
		}
		if len(mr.M) > 0 {
			am = append(am, *mr)
		}
		if err == io.EOF {
			break
		}
	}
	return am, nil
}