File 替换文件中的GString标记
我有一个以xml格式保存的word文档。在本文档中,有一些GString标记,如$name 在groovy代码中,我加载xml文件以替换此GString标记,如下所示:File 替换文件中的GString标记,file,groovy,gstring,File,Groovy,Gstring,我有一个以xml格式保存的word文档。在本文档中,有一些GString标记,如$name 在groovy代码中,我加载xml文件以替换此GString标记,如下所示: def file = new File ('myDocInXml.xml') def name = 'myName' file.eachLine { line -> println line } 但它不起作用。GString标记不能替换为我的变量“name” 有人能帮我吗
def file = new File ('myDocInXml.xml')
def name = 'myName'
file.eachLine { line ->
println line
}
但它不起作用。GString标记不能替换为我的变量“name”
有人能帮我吗
THX最好在这里使用模板。将xmml文件作为模板加载,并创建一个绑定来替换占位符。一个简单的例子可以是
def xml='''
<books>
<% names.each { %>
<book>
$it
</book>
<%}%>
</books>
'''
def engine=new groovy.text.SimpleTemplateEngine()
def template=engine.createTemplate(xml)
def binding=[names:['john','joe']]
template.make(binding)
defxml=''
美元
'''
def engine=new groovy.text.SimpleTemplateEngine()
def template=engine.createTemplate(xml)
def binding=[名称:['john','joe']]
模板制作(装订)
最好在此处使用模板。将xmml文件作为模板加载,并创建一个绑定来替换占位符。一个简单的例子可以是
def xml='''
<books>
<% names.each { %>
<book>
$it
</book>
<%}%>
</books>
'''
def engine=new groovy.text.SimpleTemplateEngine()
def template=engine.createTemplate(xml)
def binding=[names:['john','joe']]
template.make(binding)
defxml=''
美元
'''
def engine=new groovy.text.SimpleTemplateEngine()
def template=engine.createTemplate(xml)
def binding=[名称:['john','joe']]
模板制作(装订)
目前的方法是模板化。但你可能想在JIRA关注这个问题。从外部源读取字符串时,将字符串转换为GString是一种功能请求:
有好几次在网上被问到这个问题
关于如何转换的邮件列表
将字符串添加到GString或计算
字符串作为GString。需要出现了
当一个字符串从一个
外部源,并包含一个GString
表达式,例如XML文件或
配置文件。目前一
需要调用GroovyShell
或者使用SimpleTemplateEngine
完成任务。在这两种情况下
这需要几行代码和
直觉上并不明显。可以
在字符串中添加一个GDK方法
作为“评估”(在我的谦卑中)
意见是最好的)或
提供表单的转换
“字符串作为GString”
目前的方法是模板化。但你可能想在JIRA关注这个问题。从外部源读取字符串时,将字符串转换为GString是一种功能请求: 有好几次在网上被问到这个问题 关于如何转换的邮件列表 将字符串添加到GString或计算 字符串作为GString。需要出现了 当一个字符串从一个 外部源,并包含一个GString 表达式,例如XML文件或 配置文件。目前一 需要调用GroovyShell 或者使用SimpleTemplateEngine 完成任务。在这两种情况下 这需要几行代码和 直觉上并不明显。可以 在字符串中添加一个GDK方法 作为“评估”(在我的谦卑中) 意见是最好的)或 提供表单的转换 “字符串作为GString”
这是一个很老的问题,但问题仍然没有解决。。。 通过使用ApacheStrSubstitutor类,有一个很好的变通方法,其行为几乎类似于GString替换。对我来说,这比创建模板更舒服-您可以在XML文件中使用GString:
import org.apache.commons.lang.text.StrSubstitutor
strResTpl = new File(filePath + "example.xml").text
def extraText = "MY EXTRA TEXT"
map = new HashMap();
map.put("text_to_substitute", "example text - ${extraText}")
def result = new StrSubstitutor(map).replace(strResTpl);
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<eample>
<text_to_substitute>${text_to_substitute}</text_to_substitute>
</example>
${text_to_substitute}
结果:
<?xml version="1.0" encoding="UTF-8"?>
<eample>
<text_to_substitute>example text - MY EXTRA TEXT</text_to_substitute>
</example>
示例文本-我的额外文本
这是一个很老的问题,但问题仍然没有解决。。。
通过使用ApacheStrSubstitutor类,有一个很好的变通方法,其行为几乎类似于GString替换。对我来说,这比创建模板更舒服-您可以在XML文件中使用GString:
import org.apache.commons.lang.text.StrSubstitutor
strResTpl = new File(filePath + "example.xml").text
def extraText = "MY EXTRA TEXT"
map = new HashMap();
map.put("text_to_substitute", "example text - ${extraText}")
def result = new StrSubstitutor(map).replace(strResTpl);
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<eample>
<text_to_substitute>${text_to_substitute}</text_to_substitute>
</example>
${text_to_substitute}
结果:
<?xml version="1.0" encoding="UTF-8"?>
<eample>
<text_to_substitute>example text - MY EXTRA TEXT</text_to_substitute>
</example>
示例文本-我的额外文本
gstring很热门,为什么要替换一个呢?您好,我有一些word文档,它们以xml格式保存。我用GString标签替换了一些信息,比如$name、$address、$city。。。我想用数据库中的数据替换这些标签。谢谢您的回答。gstring很热门,为什么要替换一个呢?您好,我有一些word文档,它们以xml格式保存。我用GString标签替换了一些信息,比如$name、$address、$city。。。我想用数据库中的数据替换这些标签。谢谢你的回答。问题是加载XML文件不会触发GString求值。感谢您的回答!我创建了一个模板,在我的xmlFile上打开了一个fileReader,它现在可以工作了=)祝你过得愉快。问题是加载XML文件不会触发GString求值。感谢您的回答!我创建了一个模板,在我的xmlFile上打开了一个fileReader,它现在可以工作了=)祝您愉快