如何动态改变xml节点?
How to dynamically change the xml node?
我正在使用 golang 动态更改 xml 节点?一些结构如下:
type Row struct {
XMLName xml.Name `xml:"row"`
R string `xml:"r,attr,omitempty"`
}
在xml.Marshal()之后,可能输出"<row r="123"></row>"
但如果某些条件为真,我想将 "<row></row>"
更改为 "<myrow></myrow>"
。
如何使用golang动态改变xml节点?
这是一个工作示例:Playground
xml.Name 有一个包含标签名称的字段 Local
。
如果将 Local
的值设置为 "myrow"
,它将输出结构为 <myrow r="..."></myrow>
。
此外,您必须从 XMLName
字段中删除 xml 标记。当 xml 包看到此标签 (xml:"row"
) 时,它会自动将标签命名为 "row"
,无论 XMLName
包含什么。
如果删除结构的 XMLName
字段上的注释,则可以更改其值以调整结构的编组方式。例如:
r.XMLName = xml.Name{"", "myrow"}
会将元素名称设置为 myrow
,并使用空命名空间。注释需要删除,因为它将优先于 XMLName
.
的值
您可以在此处查看结果:http://play.golang.org/p/3hGbE5WO8D
我正在使用 golang 动态更改 xml 节点?一些结构如下:
type Row struct {
XMLName xml.Name `xml:"row"`
R string `xml:"r,attr,omitempty"`
}
在xml.Marshal()之后,可能输出"<row r="123"></row>"
但如果某些条件为真,我想将 "<row></row>"
更改为 "<myrow></myrow>"
。
如何使用golang动态改变xml节点?
这是一个工作示例:Playground
xml.Name 有一个包含标签名称的字段 Local
。
如果将 Local
的值设置为 "myrow"
,它将输出结构为 <myrow r="..."></myrow>
。
此外,您必须从 XMLName
字段中删除 xml 标记。当 xml 包看到此标签 (xml:"row"
) 时,它会自动将标签命名为 "row"
,无论 XMLName
包含什么。
如果删除结构的 XMLName
字段上的注释,则可以更改其值以调整结构的编组方式。例如:
r.XMLName = xml.Name{"", "myrow"}
会将元素名称设置为 myrow
,并使用空命名空间。注释需要删除,因为它将优先于 XMLName
.
您可以在此处查看结果:http://play.golang.org/p/3hGbE5WO8D