func fieldName(original string) string {
var i int
- //remove leading underscores
- for i = 0; i < len(original) && original[i] == '_'; i++ {
+ //remove leading underscores, without exhausting all characters
+ for i = 0; i < len(original)-1 && original[i] == '_'; i++ {
}
return strings.Map(
<Value>C</Value>
<Value>D</Value>
</Item1>
+ <_>
+ <value>E</value>
+ </_>
</items>
<after>2</after>
</result>
Before, After string
}
+type PathTestE struct {
+ Underline string `xml:"items>_>value"`
+ Before, After string
+}
+
var pathTests = []interface{}{
&PathTestA{Items: []PathTestItem{{"A"}, {"D"}}, Before: "1", After: "2"},
&PathTestB{Other: []PathTestItem{{"A"}, {"D"}}, Before: "1", After: "2"},
&PathTestC{Values1: []string{"A", "C", "D"}, Values2: []string{"B"}, Before: "1", After: "2"},
&PathTestD{Other: PathTestSet{Item1: []PathTestItem{{"A"}, {"D"}}}, Before: "1", After: "2"},
+ &PathTestE{Underline: "E", Before: "1", After: "2"},
}
func TestUnmarshalPaths(t *testing.T) {