Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,329 @@
|
||||
package configUtil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"goutil/typeUtil"
|
||||
)
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// 返回值:
|
||||
// []bool:结果
|
||||
// error:错误信息
|
||||
func (this *XmlConfig) BoolList(xpath string, attrName string) (result []bool, err error) {
|
||||
result = make([]bool, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err1 := typeUtil.Bool(valItem)
|
||||
if err1 != nil {
|
||||
err = err1
|
||||
return
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// defaultVal:默认值
|
||||
// ifAdddefaultVal:如果某项值转换失败,是否把默认值添加到结果集合中
|
||||
// 返回值:
|
||||
// []bool:结果
|
||||
func (this *XmlConfig) DefaultBoolList(xpath string, attrName string, defaultVal bool, ifAdddefaultVal bool) (result []bool) {
|
||||
result = make([]bool, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err := typeUtil.Bool(valItem)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// 返回值:
|
||||
// []int:结果
|
||||
// error:错误信息
|
||||
func (this *XmlConfig) IntList(xpath string, attrName string) (result []int, err error) {
|
||||
result = make([]int, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
return result, err
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err := typeUtil.Int(valItem)
|
||||
if err != nil {
|
||||
return result, err
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// defaultVal:默认值
|
||||
// ifAdddefaultVal:如果某项值转换失败,是否把默认值添加到结果集合中
|
||||
// 返回值:
|
||||
// []int:结果
|
||||
func (this *XmlConfig) DefaultIntList(xpath string, attrName string, defaultVal int, ifAdddefaultVal bool) []int {
|
||||
result := make([]int, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err := typeUtil.Int(valItem)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// 返回值:
|
||||
// []int64:结果
|
||||
// error:错误信息
|
||||
func (this *XmlConfig) Int64List(xpath string, attrName string) ([]int64, error) {
|
||||
result := make([]int64, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
return result, err
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err := typeUtil.Int64(valItem)
|
||||
if err != nil {
|
||||
return result, err
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// defaultVal:默认值
|
||||
// ifAdddefaultVal:如果某项值转换失败,是否把默认值添加到结果集合中
|
||||
// 返回值:
|
||||
// []int64:结果
|
||||
func (this *XmlConfig) DefaultInt64List(xpath string, attrName string, defaultVal int64, ifAdddefaultVal bool) []int64 {
|
||||
result := make([]int64, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err := typeUtil.Int64(valItem)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// 返回值:
|
||||
// []float64:结果
|
||||
// error:错误信息
|
||||
func (this *XmlConfig) FloatList(xpath string, attrName string) ([]float64, error) {
|
||||
result := make([]float64, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
return result, err
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err := typeUtil.Float64(valItem)
|
||||
if err != nil {
|
||||
return result, err
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// defaultVal:默认值
|
||||
// ifAdddefaultVal:如果某项值转换失败,是否把默认值添加到结果集合中
|
||||
// 返回值:
|
||||
// []float64:结果
|
||||
func (this *XmlConfig) DefaultFloatList(xpath string, attrName string, defaultVal float64, ifAdddefaultVal bool) []float64 {
|
||||
result := make([]float64, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 转换成指定类型
|
||||
for _, valItem := range valList {
|
||||
resultItem, err := typeUtil.Float64(valItem)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
result = append(result, resultItem)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// 返回值:
|
||||
// string:结果
|
||||
// error:错误信息
|
||||
func (this *XmlConfig) StringList(xpath string, attrName string) ([]string, error) {
|
||||
// 获取值列表
|
||||
return this.getValList(xpath, attrName)
|
||||
}
|
||||
|
||||
// 获取指定xpath路径下的值
|
||||
// xpath:xpath路径
|
||||
// attrName:属性名,如果为空,则返回节点的内部文本
|
||||
// defaultVal:默认值
|
||||
// ifAdddefaultVal:如果某项值转换失败,是否把默认值添加到结果集合中
|
||||
// 返回值:
|
||||
// string:结果
|
||||
func (this *XmlConfig) DefaultStringList(xpath string, attrName string, defaultVal string, ifAdddefaultVal bool) []string {
|
||||
result := make([]string, 0)
|
||||
|
||||
// 获取值列表
|
||||
valList, err := this.getValList(xpath, attrName)
|
||||
if err != nil {
|
||||
if ifAdddefaultVal {
|
||||
result = append(result, defaultVal)
|
||||
}
|
||||
|
||||
return result
|
||||
} else {
|
||||
return valList
|
||||
}
|
||||
}
|
||||
|
||||
// 获取指定路径的之
|
||||
// xpath:xpath路径
|
||||
// attrName:要获取的属性值,如果为空,则返回内部文本
|
||||
func (this *XmlConfig) getValList(xpath string, attrName string) ([]string, error) {
|
||||
result := make([]string, 0)
|
||||
|
||||
targetNodeList := this.root.SelectElements(xpath)
|
||||
if targetNodeList == nil {
|
||||
return result, fmt.Errorf("no find target node:%v", xpath)
|
||||
}
|
||||
|
||||
// 依次获取各个节点
|
||||
for _, nodeItem := range targetNodeList {
|
||||
val := ""
|
||||
if attrName == "" {
|
||||
val = strings.TrimSpace(nodeItem.InnerText())
|
||||
} else {
|
||||
val, _ = nodeItem.SelectAttr(attrName)
|
||||
}
|
||||
|
||||
result = append(result, val)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
Reference in New Issue
Block a user