Golang encoding/xml.Decoder.RawToken() example
package encoding/xml
RawToken is like Token but does not verify that start and end elements match and does not translate name space prefixes to their corresponding URLs.
Golang encoding/xml.Decoder.RawToken() usage example
func (d *Decode) parseXML(s string, pre *node) bool {
tokenArray := make([]xmlToken, 0, 64)
decoder := xml.NewDecoder(strings.NewReader(s))
for t, err := decoder.RawToken(); err == nil; t, err = decoder.RawToken() { // <-- here
tokenArray = append(tokenArray, xmlToken{token: xml.CopyToken(t)})
}
var isXML bool
for i := 0; i < len(tokenArray); i++ {
if token, ok := tokenArray[i].token.(xml.CharData); ok {
if i > 0 && i+1 < len(tokenArray) {
if start, ok := tokenArray[i-1].token.(xml.StartElement); ok {
if _, ok := tokenArray[i+1].token.(xml.EndElement); ok {
isXML = true
tokenArray[i].isData = true
d.decode(string(token), &node{XMLOBJ, pre,
start.Name.Local, &xmlObj{tokenArray, i}})
}
}
}
}
}
return isXML
}
Reference :
Advertisement
Something interesting
Tutorials
+6.3k Golang : Scanf function weird error in Windows
+14.8k Golang : Get sub string example
+3.5k Golang : Valued expressions and functions example
+4k Fix Google Analytics Redundant Hostnames problem
+8.8k Golang : Detect number of faces or vehicles in a photo
+6.9k Golang : Gomobile init produce "iphoneos" cannot be located error
+8.2k Golang : Create unique title slugs example
+18.3k Golang : Convert(cast) bytes.Buffer or bytes.NewBuffer type to io.Reader
+8.6k Golang : Validate IPv6 example
+7.4k Golang : Implementing class(object-oriented programming style)
+16.8k Golang : Display list of time zones with GMT
+30.1k Golang : Math pow(the power of x^y) example