Замените значение в XML на ParseText, используя скрипт groovy - PullRequest
0 голосов
/ 19 марта 2020

Я хочу обновить значение в XML с помощью parseText.

Это мой XML

def xmlText  = '''<BookRoot>
    <Book>
        <startDate>2005-02-14T00:00:00.000</startDate>
        <endDate>2015-01-31T00:00:00.000</endDate>
        <Author>Manu</Author>
    </Book>
    <Book>
        <startDate>2005-02-01T00:00:00.000</startDate>
        <endDate>9999-12-31T00:00:00.000</endDate>
        <Author>Liverpool</Author>
    </Book>
</BookRoot>'''

def xml = new XmlSlurper().parseText(xmlText);

Это ожидаемый результат.

<BookRoot>
    <Book>
        <startDate>CurrentDate</startDate>
        <endDate>FutureDate</endDate>
        <Author>Manu</Author>
    </Book>
    <Book>
        <startDate>CurrentDate</startDate>
        <endDate>FutureDate</endDate>
        <Author>Liverpool</Author>
    </Book>
</BookRoot>

Я пытался использовать этот код

xml.Book.each{ it->
    it.startDate[0].value = 'CurrentDate'
    it.endDate[0].value = 'FutureDate'
  }

println XmlUtil.serialize(xml)

, но значение startDate и endDate не обновляются.

1 Ответ

2 голосов
/ 19 марта 2020

Вы должны replaceBody на тегах. Например,

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