当前位置: 首页>>代码示例>>Golang>>正文


Golang go-pkg-xmlx.Node类代码示例

本文整理汇总了Golang中github.com/go-forks/go-pkg-xmlx.Node的典型用法代码示例。如果您正苦于以下问题:Golang Node类的具体用法?Golang Node怎么用?Golang Node使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Node类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: moveNode

func moveNode(xn, parent *xmlx.Node, parentName string) (newParent *xmlx.Node, oldPos int) {
	oldPos = -1
	if root := srcDoc.Root.Children[0]; parent == nil {
		if parent = subNode(root, parentName); parent == nil {
			parent = xmlx.NewNode(xn.Type)
			parent.Name.Local = parentName
			parent.Parent = root
			root.Children = append(root.Children, parent)
		}
	}
	if xn.Parent != parent {
		newParent = parent
		if xn.Parent != nil {
			for i, sn := range xn.Parent.Children {
				if sn == xn {
					oldPos = i
					break
				}
			}
			if oldPos >= 0 {
				xn.Parent.Children[oldPos] = nil
			}
		}
		xn.Parent = parent
		parent.Children = append(parent.Children, xn)
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:28,代码来源:convert.go

示例2: ensureChild

func ensureChild(xn *xmlx.Node, name string) (sn *xmlx.Node) {
	if sn = subNode(xn, name); sn == nil {
		sn = xmlx.NewNode(xn.Type)
		sn.Name.Local = name
		xn.AddChild(sn)
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:convert.go

示例3: ensureSiblings

func ensureSiblings(xn *xmlx.Node, namesVals map[string]string) {
	var sn *xmlx.Node
	for n, v := range namesVals {
		if sn = subNode(xn.Parent, n); sn == nil {
			sn = xmlx.NewNode(xn.Type)
			sn.Name.Local = n
			xn.Parent.AddChild(sn)
		}
		sn.Value = v
	}
}
开发者ID:go3d,项目名称:go-collada,代码行数:11,代码来源:convert.go

示例4: replaceNode

func replaceNode(xn, nn *xmlx.Node) {
	pos := -1
	for i, sn := range xn.Parent.Children {
		if sn == xn {
			pos = i
			break
		}
	}
	if pos >= 0 {
		xn.Parent.Children[pos] = nn
		nn.Parent = xn.Parent
		xn.Parent = nil
	}
}
开发者ID:go3d,项目名称:go-collada,代码行数:14,代码来源:convert.go

示例5: xu64

func xu64(xn *xmlx.Node, name string) (v uint64) {
	if v = xn.U64(xmlns, name); v == 0 {
		if v = xn.U64("", name); v == 0 {
			v = xn.U64("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:helpers.go

示例6: xs

func xs(xn *xmlx.Node, name string) (v string) {
	if v = xn.S(xmlns, name); len(v) == 0 {
		if v = xn.S("", name); len(v) == 0 {
			v = xn.S("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:helpers.go

示例7: xf64

func xf64(xn *xmlx.Node, name string) (v float64) {
	if v = xn.F64(xmlns, name); v == 0 {
		if v = xn.F64("", name); v == 0 {
			v = xn.F64("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:helpers.go

示例8: attValU64

func attValU64(xn *xmlx.Node, name string) (val uint64) {
	if val = xn.Au64(ns, name); val == 0 {
		if val = xn.Au64("", name); val == 0 {
			val = xn.Au64("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:convert.go

示例9: subNode

func subNode(xn *xmlx.Node, name string) (sn *xmlx.Node) {
	if sn = xn.SelectNode(ns, name); sn == nil {
		if sn = xn.SelectNode("", name); sn == nil {
			sn = xn.SelectNode("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:convert.go

示例10: attVal

func attVal(xn *xmlx.Node, name string) (val string) {
	if val = xn.As(ns, name); len(val) == 0 {
		if val = xn.As("", name); len(val) == 0 {
			val = xn.As("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:convert.go

示例11: subNodes

func subNodes(xn *xmlx.Node, name string) (sn []*xmlx.Node) {
	if sn = xn.SelectNodes(ns, name); len(sn) == 0 {
		if sn = xn.SelectNodes("", name); len(sn) == 0 {
			sn = xn.SelectNodes("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:convert.go

示例12: xcn

func xcn(xn *xmlx.Node, name string) (cn *xmlx.Node) {
	if cn = xn.SelectNode(xmlns, name); cn == nil {
		if cn = xn.SelectNode("", name); cn == nil {
			cn = xn.SelectNode("*", name)
		}
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:8,代码来源:helpers.go

示例13: setAttr

func setAttr(xn *xmlx.Node, name, value string, onlySetIfEmpty bool) {
	for _, att := range xn.Attributes {
		if att.Name.Local == name {
			if (!onlySetIfEmpty) || (len(att.Value) == 0) {
				logFmt("\t\tsetAttr %s.%s = %s\n", xn.Name.Local, name, value)
				att.Value = value
			}
			return
		}
	}
	logFmt("\t\taddAttr %s.%s = %s\n", xn.Name.Local, name, value)
	att := &xmlx.Attr{Value: value}
	att.Name.Local = name
	xn.Attributes = append(xn.Attributes, att)
}
开发者ID:go3d,项目名称:go-collada,代码行数:15,代码来源:convert.go

示例14: delAttr

func delAttr(xn *xmlx.Node, name string) {
	if Strict {
		pos := -1
		for i, att := range xn.Attributes {
			if att.Name.Local == name {
				pos = i
				break
			}
		}
		if pos >= 0 {
			logFmt("\t\tdelAttr %s.%s\n", xn.Name.Local, name)
			nuAtts := append(xn.Attributes[:pos], xn.Attributes[pos+1:]...)
			xn.Attributes = nuAtts
		}
	}
}
开发者ID:go3d,项目名称:go-collada,代码行数:16,代码来源:convert.go

示例15: xcns

func xcns(xn *xmlx.Node, names ...string) (cns []*xmlx.Node) {
	if len(names) == 1 {
		if cns = xn.SelectNodes(xmlns, names[0]); len(cns) == 0 {
			if cns = xn.SelectNodes("", names[0]); len(cns) == 0 {
				cns = xn.SelectNodes("*", names[0])
			}
		}
	} else {
		var scns []*xmlx.Node
		for _, n := range names {
			if scns = xcns(xn, n); len(scns) > 0 {
				cns = append(cns, scns...)
			}
		}
	}
	if len(cns) > 0 && cns[0].Parent == xn.Parent {
		cns = cns[1:]
	}
	return
}
开发者ID:go3d,项目名称:go-collada,代码行数:20,代码来源:helpers.go


注:本文中的github.com/go-forks/go-pkg-xmlx.Node类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。