我有一个客户拥有 XML,他们似乎想要一个库存数组,但是每个项目一个接一个地列出,没有包装节点。
这是我正在做的一个示例,但每个项目都有一个包装节点。有没有办法让它们在“root”下一个接一个地列出?
测试代码:
package main
import (
"encoding/xml"
"fmt"
"os"
"strconv"
)
func main() {
type InventoryItem struct {
XMLName xml.Name
ItemName string `xml:"Name"`
ItemDescription string `xml:"Description"`
}
type XMLEnvelop struct {
XMLName xml.Name `xml:"root"`
Inventory []InventoryItem `xml:"item"`
Records int `xml:"records"`
}
var items []InventoryItem
for i := 1; i < 6; i++ {
items = append(items, InventoryItem{XMLName: xml.Name{Local: "item" + strconv.Itoa(i)}, ItemName: "Test " + strconv.Itoa(i), ItemDescription: "Description " + strconv.Itoa(i)})
}
v := &XMLEnvelop{Records: 1, Inventory: items}
output, err := xml.MarshalIndent(v, "", " ")
if err != nil {
fmt.Printf("error: %v\n", err)
}
// Write the output to check
os.Stdout.Write(output)
//Here is where I would make the request
}
测试输出:
<root>
<item1>
<Name>Test 1</Name>
<Description>Description 1</Description>
</item1>
<item2>
<Name>Test 2</Name>
<Description>Description 2</Description>
</item2>
<item3>
<Name>Test 3</Name>
<Description>Description 3</Description>
</item3>
<item4>
<Name>Test 4</Name>
<Description>Description 4</Description>
</item4>
<item5>
<Name>Test 5</Name>
<Description>Description 5</Description>
</item5>
<records>1</records>
</root>
去游乐场: https: //play.golang.org/p/3DRUABFEQvC
这是他们似乎正在寻找的输出......无论出于何种原因。
<root>
<Name>Test 1</Name>
<Description>Description 1</Description>
<Name>Test 2</Name>
<Description>Description 2</Description>
<Name>Test 3</Name>
<Description>Description 3</Description>
<Name>Test 4</Name>
<Description>Description 4</Description>
<Name>Test 5</Name>
<Description>Description 5</Description>
<records>1</records>
</root>
MM们
相关分类