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
Xml 如何使用groovy访问节点的值_Xml_Groovy - Fatal编程技术网

Xml 如何使用groovy访问节点的值

Xml 如何使用groovy访问节点的值,xml,groovy,Xml,Groovy,这是一个非常简单的问题。我有这样一个XML文件: <?xml version="1.0" encoding="UTF-8"?> <test:main xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:test="http://www.testexample.com/test" xmi:id="_BMseo

这是一个非常简单的问题。我有这样一个XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<test:main xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:test="http://www.testexample.com/test" xmi:id="_BMseoD4mEeiL8o0bAkMKoA">
    <childNode xmi:id="_9_RgZj4lEeiL8o0bAkMKoA" name="Boo!" number="1.414"/>
    <childNode xmi:id="_9_RgYz4lEeiL8o0bAkMKoA" name="toto" number="42"/>
    <childNode xmi:id="__o_QMT4lEeiL8o0bAkMKoA" name="paf" number="12.215"/>
    <childNode xmi:id="_vUeScDy9EeilM5T6mGX42Q" name="pif" number="56.1"/>
</test:main>

我想改变toto的数值,比如42.42。 我该怎么做

谢谢你的关注

编辑:
以下代码运行良好:

import groovy.xml.*

def myTest = '''
<test:main xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:test="http://www.testexample.com/test" xmi:id="_BMseoD4mEeiL8o0bAkMKoA">
    <childNode xmi:id="_9_RgZj4lEeiL8o0bAkMKoA" name="Boo!" number="1.414"/>
    <childNode xmi:id="_9_RgYz4lEeiL8o0bAkMKoA" name="toto" number="42"/>
    <childNode xmi:id="__o_QMT4lEeiL8o0bAkMKoA" name="paf" number="12.215"/>
    <childNode xmi:id="_vUeScDy9EeilM5T6mGX42Q" name="pif" number="56.1"/>
</test:main>
'''
myTest = new XmlParser(false, true).parseText(myTest)
myTest.childNode.find { obj ->
    obj.@name == 'toto'
}.@number = 42.42

println XmlUtil.serialize( myTest )
导入groovy.xml* def myTest='' ''' myTest=newXMLParser(false,true)。parseText(myTest) myTest.childNode.find{obj-> obj.@name=='toto' }@number=42.42 println XmlUtil.serialize(myTest)
谢谢你的帮助

这里我使用了一个示例xml文件。请尝试使用以下代码:

import groovy.xml.XmlUtil


String xmlfile ='''<?xml version="1.0" encoding="UTF-8"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price name="dollars" mode="online">5.95</price>
<description>
Two of our famous Belgian Waffles with plenty of real maple syrup
</description>
<calories>650</calories>
</food>
</breakfast_menu>'''

def root = new XmlSlurper().parseText(xmlfile)


root.food.price.find{ it["@name"] =="dollars"}.@ "mode"='offline'


println (XmlUtil.serialize(root))
import groovy.xml.XmlUtil
字符串xmlfile=''
华夫饼
5.95
我们的两个著名的比利时华夫饼干,里面有很多真正的枫糖浆
650
'''
def root=new XmlSlurper().parseText(xmlfile)
root.food.price.find{it[“@name”]==“美元”}.@“mode”='offline'
println(XmlUtil.serialize(根))

要了解更多操作,只需阅读Groovy文档

提供有效的xml文件..Santonja,编辑部分下的代码片段似乎正常,并显示了所需的输出。是吗?拉奥,是的,现在是工作!谢谢你的帮助@Uchiha_Itachi!高兴的如果你觉得答案是有用的或可以接受的,你应该接受并投赞成票。有关信息,请参阅和