I'm searching for xml files that have certain properties. For example, files that contain the following pattern:
<param-value>
<name>Hosts</name>
<description>some description</description>
<value></value>
</param-value>
For such files, I'd like to parse the value of another tag, such as:
<param-value>
<name>Roles</name>
<description>some description</description>
<value>asdf</value>
</param-value>
And print out the file name along with "asdf". What's the simplest way to accomplish this from the command line?
One approach I was thinking of was just using grep with the -l option to filter the matching files out, and then using xargs grep to extract the value of Roles. However, grep doesn't work well with multi-line regexes. I saw another question that showed it could be done with the -Pzo options, but didn't have any luck getting it to work in my case. Is there a simpler approach?