Go 言語で XML 処理関数を使用して XML ファイルを解析し、ノードをフィルター処理する方法は?
Go 言語では、標準ライブラリ encoding/xml
を使用して XML ファイルを処理できます。 encoding/xml
XML ファイルを迅速に解析し、必要に応じて必要なノードをフィルタリングするのに役立つ一連の関数と構造を提供します。この記事では、Go 言語の XML 処理関数を使用して XML ファイルを解析し、ノードをフィルター処理する方法と、対応するコード例を紹介します。
まず、encoding/xml
パッケージをインポートする必要があります:
import ( "encoding/xml" "fmt" "io/ioutil" "os" )
パス ./data.xml## の XML ファイルがあると仮定します。 #、XML ファイルの内容は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?> <root> <person> <name>张三</name> <age>25</age> </person> <person> <name>李四</name> <age>30</age> </person> <person> <name>王五</name> <age>35</age> </person> </root>
ノードを
Person 構造に解析するとします。
type Person struct {
Name string `xml:"name"`
Age int `xml:"age"`
}
xml.Unmarshal() The を使用できます。この関数は XML ファイルを構造スライスに解析します。コードは次のとおりです:
func main() { file, err := os.Open("./data.xml") if err != nil { fmt.Println("打开文件失败:", err) return } defer file.Close() data, err := ioutil.ReadAll(file) if err != nil { fmt.Println("读取文件失败:", err) return } var persons []Person err = xml.Unmarshal(data, &persons) if err != nil { fmt.Println("解析XML文件失败:", err) return } fmt.Println(persons) }
[{张三 25} {李四 30} {王五 35}]
func main() { file, err := os.Open("./data.xml") if err != nil { fmt.Println("打开文件失败:", err) return } defer file.Close() data, err := ioutil.ReadAll(file) if err != nil { fmt.Println("读取文件失败:", err) return } var persons []Person err = xml.Unmarshal(data, &persons) if err != nil { fmt.Println("解析XML文件失败:", err) return } var filteredPersons []Person for _, person := range persons { if person.Age >= 30 { filteredPersons = append(filteredPersons, person) } } fmt.Println(filteredPersons) }
[{李四 30} {王五 35}]
以上がGo 言語の XML 処理関数を使用して XML ファイルを解析し、ノードをフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。