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>まず、解析された XML データを保存するための構造を定義する必要があります。各
0833d296851a1e081f2175a4cbfa7135 ノードを
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}]次に、必要に応じてフィルタリングできます。特定のノードから。たとえば、30 歳以上の人々に関する情報のみを取得したい場合は、次のコードを使用できます:
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 ファイルを解析し、必要なノードをフィルターで除外する方法がわかります。実際のニーズに応じてコードを変更し、より複雑な XML 解析およびフィルタリング操作を実行できます。
以上がGo 言語の XML 処理関数を使用して XML ファイルを解析し、ノードをフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。