Как я могу получить доступ к значению узла с Groovy - PullRequest
0 голосов
/ 26 апреля 2018

Это действительно простой вопрос. У меня есть 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>

и я хотел бы изменить значение число на на , например, присвоить ему значение 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 )

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 26 апреля 2018

Здесь я использовал пример 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))

Для получения дополнительной информации просто прочитайте Groovy doc ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...