Grails 在Groovy服务类中从应用程序读取XML文件

Grails 在Groovy服务类中从应用程序读取XML文件,grails,groovy,Grails,Groovy,我已将我的静态XML文件放在web app/ 现在,从groovy服务类中,我想读取文件并解析它。 如何访问该文件以及需要使用的类是什么?您只需打开该文件并通过 def testXml = new XmlSlurper().parse('web-app/<my_custom_folder>/<my_xml_file.xml>') def testXml=new XmlSlurper().parse('web-app/')) 注意,路径是相对于Grails项目的根的 可

我已将我的静态XML文件放在
web app/
现在,从groovy服务类中,我想读取文件并解析它。
如何访问该文件以及需要使用的类是什么?

您只需打开该文件并通过

def testXml = new XmlSlurper().parse('web-app/<my_custom_folder>/<my_xml_file.xml>')
def testXml=new XmlSlurper().parse('web-app/'))
注意,路径是相对于Grails项目的根的

可以找到有关如何使用生成的
testXml
变量的示例


<>编辑:如果您计划使用WAR文件部署应用程序,则应该考虑将XML文件移动到另一个位置,因为Web应用程序目录将不再可用,但您可以使用绝对路径、环境变量或类路径来完成您想要的操作。 如果您正在寻找配置应用程序的方法,则应阅读手册中的章节


感谢@Burt Beckwith指出这一点。

感谢您的回复。如果我像你提到的那样直接使用它会有效吗?我在web app/myfolder/my.xml中创建了一个文件夹。我可以使用新的XmlSlurper().parseText('web-app/myfolder/my.xml')吗?我在xml解析过程中遇到以下错误。[致命错误]:1:1:prolog中不允许包含内容。你能告诉我发生错误的原因吗?我怀疑这可能是因为xml文件格式!看起来您的XML文件格式不正确。使用验证器检查您的语法。这在已部署的war中不起作用,因为war中没有web app文件夹。对于war文件部分,您可以查看一些想法。不过,安托万是对的,文件应该在其他地方。可能已经在类路径上的某个地方(
WEB-INF/classes
,例如)。