Re: Improving what I extract for my xml tag
Kendall Shaw <kshaw-BLmIX6/[email protected]>
| Newsgroups | gmane.comp.lang.groovy.user |
|---|---|
| Message-ID | <[email protected]> |
itt.@name gets you the attribute called "name".
On 4/2/2023 9:29 AM, James McMahon wrote:
> Hello. I am developing a Groovy script to work through all the tags in
> an incoming t"ext representation of an xml file. I've read my xml from
> the content of a NiFi flowfile, like so:
>
> session.read(ff, {inputStream ->
> text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
> def xml = new XmlParser().parseText(text)
>
> Later in my code I iterate through the xml to find all the values
> associated with that tag. Ultimately I will build a unique sorted
> list, tagValues.
>
> This is the code section that I have working so far:
>
> incomingTagsMap.each {
> tagValues.clear()
> * xml.'**'.each { itt ->*
> log.warn('Found this tag: {}, with this value:
> {}', itt.name <http://itt.name>(), itt.text())
> // If itt.text() is not on tagValues list, add it...
> if ( !tagValues.contains(itt.text()) ) {
> tagValues.add(itt.text()) }
> log.warn('Length of tagValues list : {}',
> tagValues.size())
> }
> log.warn('Tag {} has values: {}', ["$it.key",
> tagValues.toListString()] as Object[])
> }
>
> $it.key comes from an outer iterative loop.
>
> Where I am failing:
> I was hoping someone could help me tune this because in cases like
> this....
> <property name="User Group
> Provider">file-user-group-provider</property>
> ...I only get *property *as the tag. What I really want to identify as
> my tag is *User Group Provider* .
>
> I've been unable to find any examples. Can anyone show me how to
> accomplish this?
>
> Thanks very much in advance.
> Cheers,
> Jim
>