drawio-export/pkg/drawio/export.go
Алексей Бадяев 0d6f42f425
All checks were successful
drawio-export/pipeline/head This commit looks good
Добавлена функция Diagrams() с тестами.
2023-04-08 22:04:55 +07:00

33 lines
693 B
Go

package drawio
import (
"bufio"
"fmt"
"io"
xmlparser "github.com/tamerh/xml-stream-parser"
)
// Разбирает данные и возвращает срез имён диаграмм в них
func Diagrams(reader io.Reader) ([]string, error) {
var (
result = []string{}
br = bufio.NewReader(reader)
parser = xmlparser.NewXMLParser(
br, "mxfile", "diagram",
).ParseAttributesOnly("diagram")
)
for xml := range parser.Stream() {
if xml.Err != nil {
return result, xml.Err
}
fmt.Println(xml.Name)
if items, ok := xml.Childs["diagram"]; ok {
for _, item := range items {
result = append(result, item.Attrs["name"])
}
}
}
return result, nil
}