我一直在尝试使用不同的Go软件包来验证xsd中的xml,但没有成功地使用它们。github.com/goxmpp/xmlgithub.com/lestrrat-go/libxml2github.com/go-xmlpath/xmlpathgithub.com/metaleap/go-xsd/types我要么得到编译失败,要么无法安装所需的依赖项。有人可以提供一个Go语言中可用的包,以及一个工作示例来测试任何xml针对指定的模式定义文件(xsd)?
github.com/goxmpp/xml
github.com/lestrrat-go/libxml2
github.com/go-xmlpath/xmlpath
github.com/metaleap/go-xsd/types
vvppvyoh1#
下面是一些可以用来在Go中针对XSD验证XML的包:xsdvalidate是一个使用libxml2验证XML的包。如果您需要快速有效地验证XML,那么它是一个不错的选择。go-xsd是另一个使用libxml2验证XML的包。它比xsdvalidate使用起来要复杂一些,但它提供了更多的功能。xmlpath是一个可用于解析和验证XML的包。如果您需要执行更复杂的验证,例如检查特定元素或属性的存在,则它是一个不错的选择。下面是一个使用xsdvalidate的代码示例:
xsdvalidate
package main import ( "fmt" "github.com/terminalstatic/go-xsd-validate" ) func main() { // Load the XSD file. xsdHandler, err := xsdvalidate.NewXsdHandlerFromFile("my_schema.xsd") if err != nil { panic(err) } // Load the XML document. xmlData, err := ioutil.ReadFile("my_xml.xml") if err != nil { panic(err) } // Validate the XML document against the XSD. err = xsdHandler.Validate(xmlData) if err != nil { fmt.Println(err) } else { fmt.Println("XML document is valid") } }
如果你想要一个例子为其他包请让我知道,然后我可以把一些东西。
1条答案
按热度按时间vvppvyoh1#
下面是一些可以用来在Go中针对XSD验证XML的包:
xsdvalidate是一个使用libxml2验证XML的包。如果您需要快速有效地验证XML,那么它是一个不错的选择。
go-xsd是另一个使用libxml2验证XML的包。它比
xsdvalidate
使用起来要复杂一些,但它提供了更多的功能。xmlpath是一个可用于解析和验证XML的包。如果您需要执行更复杂的验证,例如检查特定元素或属性的存在,则它是一个不错的选择。
下面是一个使用
xsdvalidate
的代码示例:如果你想要一个例子为其他包请让我知道,然后我可以把一些东西。