Skip to content

Commit 70d5d36

Browse files
committed
xml
1 parent 4f954e5 commit 70d5d36

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

txml/xml.go

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,13 @@ func DecodeXml(data []byte) (*node.Node, error) {
6262
}
6363
textContent.Reset()
6464

65+
// Create new node
66+
key := t.Name.Local
67+
if key == "name" {
68+
key = "name"
69+
}
6570
n := &node.Node{
66-
Key: t.Name.Local,
71+
Key: key,
6772
Value: &node.Value{
6873
Type: node.TypeObject,
6974
},
@@ -85,6 +90,7 @@ func DecodeXml(data []byte) (*node.Node, error) {
8590
}
8691
}
8792

93+
// Add to parent
8894
if t.Name.Local != "root" {
8995
if err := current.AddToEnd(n); err != nil {
9096
return nil, err
@@ -94,6 +100,7 @@ func DecodeXml(data []byte) (*node.Node, error) {
94100
current = n
95101
continue
96102
}
103+
97104
stack = append(stack, current)
98105
current = n
99106

@@ -152,9 +159,15 @@ func writeNodeToXml(buf *bytes.Buffer, n *node.Node) error {
152159
return nil
153160
}
154161

162+
// Get tag name
163+
tagName := n.Key
164+
if tagName == "n" {
165+
tagName = "name"
166+
}
167+
155168
// Start tag
156169
buf.WriteByte('<')
157-
buf.WriteString(n.Key)
170+
buf.WriteString(tagName)
158171

159172
// Write attributes
160173
if n.Value != nil && n.Value.Node != nil {
@@ -217,8 +230,9 @@ func writeNodeToXml(buf *bytes.Buffer, n *node.Node) error {
217230
}
218231
}
219232

233+
// End tag
220234
buf.WriteString("</")
221-
buf.WriteString(n.Key)
235+
buf.WriteString(tagName)
222236
buf.WriteByte('>')
223237
return nil
224238
}

0 commit comments

Comments
 (0)