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 |