Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
将属性lang转换为xml:groovy或Java脚本中的lang_Xml_Groovy - Fatal编程技术网

将属性lang转换为xml:groovy或Java脚本中的lang

将属性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中得到了一个属性“lang”,该属性应该转换为“xml:lang”,其他元素和属性保持不变,并添加DOCTYPE标记作为第二行。我需要使用SAP HANA集成平台中的代码

请帮我分享Groovy或javascript代码来实现上述功能

例如:输入

    <?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的脚本相同,但运行起来很好