1
xmlを非整列化して特定のノードを抽出しようとしましたが、これはいくつかの異なるレベルにある可能性があります。 は、例えば、XMLが有効です。xmlの任意のレベルでマッチしたノードを非整列化
<People>
<Person>
<FullName>Jerome Anthony</FullName>
</Person>
<a>
<Person>
<FullName>Christina</FullName>
</Person>
</a>
</People>
私は関係なく、彼らのネストレベルの、このXMLからすべてのFullNameを抽出したいと思います。動作していない、私が試した コード例、:
type People struct {
Names []string `xml:"FullName"`
}
v := People{Names: []string{}}
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Printf("Names of people: %q", v)
備考:これは、マーシャリング解除文字列の簡単な例で、効果的に、私はまた、アンマーシャリング複雑な構造をしたいと思います。
あなたは正しいです、それは問題に直面しています。 'xml:" Person> FullName "を指定した場合、結果は' Jerome Anthony'になり、 'xml:" a> Person> FullName "'を指定すると結果は 'Christina'になります。私は両方を同じ価値に統合したい。私はxpathと似たようなことをしています。「ネストレベルに関係なく、どのノードも 'FullName' – buddy123
@ buddy123という名前の式を作成できます。あなたは[just](https:// godoc .org /?q = xpath)[that](https://godoc.org/?q=etree)。 – kostix