The XMLTool can be used to parse an remote XML file and iterate over each object returned in the XML file as needed
Class: com.dotmarketing.viewtools.xmltool.java
Name: $xmltool
Toolbox Configuration Example:
<tool>
<key>xmltool</key>
<scope>application</scope>
<class>com.dotmarketing.viewtools.xmltool</class>
</tool>
Example
Here's a usage example created by Chris Falzone of the dotCMS community. Thanks, Chris!
First, we'll start with an example of an XML page that can be parsed: http://www.w3schools.com/XML/cd_catalog.xml
To parse the XML file on a dotCMS page, preview the following example which is doing a parse of an XML page and then iterating over five objects in the parse at the bottom of this document:
#set($myXML = $xmltool.read("https://www.w3schools.com/XML/cd_catalog.xml"))
<table border="1" style="width:100%;">
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
#foreach($cd in $myXML.children().iterator())
#set($cdXML = $xmltool.parse($cd))
#if($velocityCount <= 5)
<tr>
<td>$cdXML.TITLE.text </td>
<td>$cdXML.ARTIST.text </td>
<td>$cdXML.COUNTRY.text </td>
<td>$cdXML.COMPANY.text </td>
<td>$cdXML.PRICE.text </td>
<td>$cdXML.YEAR.text</td>
</tr>
#end
#end
</table>
Example Output
Below is a live version of the code shown above, pulling from the "CD Catalog" XML document from W3Schools:
| Title | Artist | Country | Company | Price | Year |
|---|---|---|---|---|---|
| Empire Burlesque | Bob Dylan | USA | Columbia | 10.90 | 1985 |
| Hide your heart | Bonnie Tyler | UK | CBS Records | 9.90 | 1988 |
| Greatest Hits | Dolly Parton | USA | RCA | 9.90 | 1982 |
| Still got the blues | Gary Moore | UK | Virgin records | 10.20 | 1990 |
| Eros | Eros Ramazzotti | EU | BMG | 9.90 | 1997 |