如何使用go检查XML文件中是否存在标签?

我不知道XML文件中存在的标签。我想知道是否存在某个标签。例如,假设文件是这样的:


<?xml version='1.1' encoding='UTF-8'?>

<tag1>

    <tag2></tag2>

</tag1>

<tag3/>

在这里,我想检查是否tag2存在。使用解析XML文件的唯一方法go是定义structs,但为此,我必须知道文件中存在哪些标签,而我没有。


米琪卡哇伊
浏览 334回答 2
2回答

喵喔喔

一种方法是使用XPath和xmlpath包:xml := `<?xml version='1.0' encoding='UTF-8'?><tag1><tag2>foo</tag2></tag1><tag3/>`path := "/tag1/tag2"compiledPath := xmlpath.MustCompile("/tag1/tag2")root, err := xmlpath.Parse(strings.NewReader(xml))if err != nil {&nbsp; &nbsp; log.Fatal(err)}if value, ok := compiledPath.String(root); ok {&nbsp; &nbsp; fmt.Printf("Found tag at path %v. Value: %v\n", path, value)} else {&nbsp; &nbsp; fmt.Printf("Tag at path %v not found\n", path)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go