github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/pkg/service/output-xml.go (about) 1 package service 2 3 import ( 4 "fmt" 5 6 logUtils "github.com/easysoft/zendata/pkg/utils/log" 7 ) 8 9 func (s *OutputService) GenXml() { 10 records := s.GenRecords() 11 12 s.PrintXmlHeader() 13 14 for i, record := range records { 15 line := s.getXmlLine(i, record) 16 17 logUtils.PrintRecord(line + "\n") 18 } 19 20 s.PrintXmlFooter() 21 22 return 23 } 24 25 func (s *OutputService) PrintXmlHeader() { 26 logUtils.PrintLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<testdata>\n <title>Test Data</title>\n") 27 28 } 29 func (s *OutputService) PrintXmlFooter() { 30 logUtils.PrintLine("</testdata>\n") 31 } 32 33 func (s *OutputService) getXmlLine(index int, record map[string]interface{}) string { 34 str := "" 35 j := 0 36 for key, val := range record { 37 str += fmt.Sprintf(" <%s>%v</%s>", key, val, key) 38 if j != len(record)-1 { 39 str = str + "\n" 40 } 41 42 j++ 43 } 44 45 text := fmt.Sprintf(" <row>\n%s\n </row>", str) 46 47 return text 48 }