Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
File 替换文件中的GString标记_File_Groovy_Gstring - Fatal编程技术网

File 替换文件中的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” 有人能帮我吗

我有一个以xml格式保存的word文档。在本文档中,有一些GString标记,如$name

在groovy代码中,我加载xml文件以替换此GString标记,如下所示:

    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,它现在可以工作了=)祝您愉快