替换文件中的 GString 标签
我有一个以xml格式保存的word文档。 在这个文档中,有一些像$name这样的GString标签。
在我的常规代码中,我加载 xml 文件来替换此 GString 标记,如下所示:
def file = new File ('myDocInXml.xml')
def name = 'myName'
file.eachLine { line ->
println line
}
但它不起作用。 GString 标签不会被我的变量“名称”替换。
有人可以帮助我吗?
谢谢
i've got a word document saved in xml format. In this document, there are some GString Tag like $name.
In my groovy code, i load the xml file to replace this GString tag like this:
def file = new File ('myDocInXml.xml')
def name = 'myName'
file.eachLine { line ->
println line
}
But it doesn't works. The GString Tag doesn't be replaced by my variable 'name'.
Could anyone help me ?
THX
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最好在这里使用模板。 加载 xmml 文件作为模板并创建绑定以替换占位符。 一个简单的例子可能是这样的
Better to use a templating here. Load the xmml file as a template and create a binding to replace the placeholders. A simple example could be like
目前,模板化是一种方法。 但您可能需要在 JIRA GROOVY-2505 中关注此问题。 当从外部源读取字符串时,将字符串转换为 GString 是一个功能请求:
Currently templating is the approach. But you might want to keep an eye on this issue in JIRA GROOVY-2505. It is a feature request to convert a String to a GString in cases when the string is read from an external source:
然而,相当老的问题,问题 http://jira.codehaus.org /browse/GROOVY-2505 仍未解决...
有一个很好的解决方法,其行为几乎类似于 GString 替换,通过使用 Apache StrSubstitutor 类。 对我来说,它比创建模板更舒服 - 您可以在 XML 文件中使用 GString:
XML 文件:
结果:
Pretty old question, however, issue http://jira.codehaus.org/browse/GROOVY-2505 still not solved...
There is a nice workaround, which behaves almost like GString substitution, by using Apache StrSubstitutor class. For me it is more comfortable than creating templates - you can use GStrings in XML files:
XML file:
Result: