将属性lang转换为xml:groovy或Java脚本中的lang
我在xml中得到了一个属性“lang”,该属性应该转换为“xml:lang”,其他元素和属性保持不变,并添加DOCTYPE标记作为第二行。我需要使用SAP HANA集成平台中的代码 请帮我分享Groovy或javascript代码来实现上述功能 例如:输入将属性lang转换为xml:groovy或Java脚本中的lang,xml,groovy,Xml,Groovy,我在xml中得到了一个属性“lang”,该属性应该转换为“xml:lang”,其他元素和属性保持不变,并添加DOCTYPE标记作为第二行。我需要使用SAP HANA集成平台中的代码 请帮我分享Groovy或javascript代码来实现上述功能 例如:输入 <?xml version="1.0" encoding="UTF-8"?> <root> <Description lang="en">TEST</Description&g
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Description lang="en">TEST</Description>
<Forecast>
<Period endDate="2016-09-01T23:59:59+02:00" startDate="2016-09-01T00:00:00+02:00"/>
<ForecastQuantity quantity="34.0">
<name lang="en">TEST1</name>
<UnitOfMeasure>EA</UnitOfMeasure>
</ForecastQuantity>
</Forecast>
</root>
试验
测试1
每个
输出应为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.029/cXML.dtd">
<root>
<Description xml:lang="en">TEST</Description>
<Forecast>
<Period endDate="2016-09-01T23:59:59+02:00" startDate="2016-09-01T00:00:00+02:00"/>
<ForecastQuantity quantity="34.0">
<name xml:lang="en">TEST1</name>
<UnitOfMeasure>EA</UnitOfMeasure>
</ForecastQuantity>
</Forecast>
</root>
试验
测试1
每个
谢谢您可以更改属性名称,如:
def startXml = """<?xml version="1.0" encoding="UTF-8"?>
<root>
<Description lang="en">TEST</Description>
<Forecast>
<Period endDate="2016-09-01T23:59:59+02:00" startDate="2016-09-01T00:00:00+02:00"/>
<ForecastQuantity quantity="34.0">
<name lang="en">TEST1</name>
<UnitOfMeasure>EA</UnitOfMeasure>
</ForecastQuantity>
</Forecast>
</root>"""
def parser = new XmlParser()
def root = parser.parseText( startXml )
root.Forecast.ForecastQuantity.name[0].replaceNode{
name( 'xml:lang': root.Forecast.ForecastQuantity.name.@lang[0],
root.Forecast.ForecastQuantity.name[0].value() )
}
println XmlUtil.serialize( root )
def startXml=”“”
试验
测试1
每个
"""
def parser=new XmlParser()
def root=parser.parseText(startXml)
root.Forecast.ForecastQuantity.name[0].replaceNode{
名称('xml:lang':root.Forecast.ForecastQuantity.name.@lang[0],
root.Forecast.ForecastQuantity.name[0].value())
}
println XmlUtil.serialize(根)
产生
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Description lang="en">TEST</Description>
<Forecast>
<Period endDate="2016-09-01T23:59:59+02:00" startDate="2016-09-01T00:00:00+02:00"/>
<ForecastQuantity quantity="34.0">
<name xml:lang="en">TEST1</name>
<UnitOfMeasure>EA</UnitOfMeasure>
</ForecastQuantity>
</Forecast>
</root>
试验
测试1
每个
Getting error>groovy.lang.MissingMethodException:没有方法的签名:java.util.ArrayList.replaceNode()适用于参数类型:(Script1$\u run\u closure1)值:[Script1$\u run_closure1@25b31d24]在Script1.run(Script1.groovy:15)中,我使用的错误与使用intellij中的2.4.6的脚本相同,但运行起来很好