As mentioned in other answer, xml.Unmarshal
can parse comment only if it's part of XML element.
External library xmlpath
which implements XPath specification can be useful in your case.
Install: go get gopkg.in/xmlpath.v1
Let's extract preceding
comment of tag named someTag
from your example xml.
import (
"fmt"
"log"
"strings"
xmlpath "gopkg.in/xmlpath.v1"
)
func main() {
data := `
<?xml version="1.0" encoding="UTF-8"?>
<!-- EIS docs-ws-api Integration Scheme, version 6.4, create date 15.11.2016 -->
<someTag></someTag>
`
path := xmlpath.MustCompile("/someTag/preceding::comment()")
root, err := xmlpath.Parse(strings.NewReader(data))
if err != nil {
log.Fatal(err)
}
if comment, ok := path.String(root); ok {
fmt.Println(comment)
}
}