All checks were successful
drawio-export/pipeline/head This commit looks good
33 lines
693 B
Go
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
|
|
}
|