Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Grails用XML文件填充数据库_Xml_Grails_Groovy - Fatal编程技术网

如何使用Grails用XML文件填充数据库

如何使用Grails用XML文件填充数据库,xml,grails,groovy,Xml,Grails,Groovy,我正在玩Grails,现在想知道如何在计算机上用本地XML文件填充数据库。我在引导类中尝试过这个 class BootStrap { def init = { servletContext -> def users= new XmlSlurper().parse(new File("C:\\Users\\users.xml")) users.user.each() { p -&g

我正在玩Grails,现在想知道如何在计算机上用本地XML文件填充数据库。我在引导类中尝试过这个

class BootStrap {
    def init = { servletContext ->
        def users= new XmlSlurper().parse(new File("C:\\Users\\users.xml"))
        users.user.each()
                {
                    p -> new user(userid: p.@userid, name: p.@username, email: p.@email,)
                }
    }
    def destroy = {

    }
}
但我得到一个错误,它说:

[致命错误]users.xml:2:10:DOCTYPE在 功能集设置为 对


如何解决此问题?

您的XML有一个slurper不喜欢的doctype,您可以从XML文档中删除该doctype,或者禁用“创建slurper”复选框,如下所示:

XmlSlurper xmlSlurper = new XmlSlurper()
xmlSlurper.setFeature( "http://apache.org/xml/features/disallow-doctype-decl", false )
xmlSlurper.setFeature( "http://apache.org/xml/features/nonvalidating/load-external-dtd", false )
xmlSlurper.parse(...

一旦您克服了这个障碍,您可能会遇到其他问题,例如您的用户定义是小写的,并且构造函数中有一个尾随逗号。

除非这是一个复制粘贴错误:您应该使用大写类名,例如user而不是user-这甚至可能导致groovy中的解析错误,而不是这一个。为什么products.xml会出现此错误?如果要将问题改写为最小的失败案例,请确保错误消息等匹配。Aww,它必须是users.xml这是什么java和grails版本?