| package groovy.util |
| |
| class XmlParserTest extends GroovyTestCase { |
| |
| void testXmlParser() { |
| text = """ |
| <characters> |
| <character id="1" name="Wallace"> |
| <likes>cheese</likes> |
| </character> |
| <character id="2" name="Gromit"> |
| <likes>sleep</likes> |
| </character> |
| </characters> |
| """ |
| |
| node = new XmlParser().parseText(text); |
| |
| assert node != null |
| assert node.children().size() == 2 : "Children ${node.children()}" |
| |
| characters = node.character |
| |
| for (c in characters) { |
| println c['@name'] |
| } |
| |
| assert characters.size() == 2 |
| |
| assert node.character.likes.size() == 2 : "Likes ${node.character.likes}" |
| |
| // lets find Gromit |
| gromit = node.character.find { it['@id'] == '2' } |
| assert gromit != null : "Should have found Gromit!" |
| assert gromit['@name'] == "Gromit" |
| |
| |
| // lets find what Wallace likes in 1 query |
| answer = node.character.find { it['@id'] == '1' }.likes[0].text() |
| assert answer == "cheese" |
| } |
| |
| void testMixedMarkup() { |
| text = <<<EOF |
| <p>Please read the <a href="index.html">Home</a> page</p> |
| EOF |
| |
| node = new XmlParser().parseText(text) |
| |
| new NodePrinter().print(node) |
| |
| assert node != null |
| children = node.children() |
| assert children.size() == 3 : "Children ${children}" |
| assert children[0] instanceof String |
| assert children[1] instanceof Node |
| assert children[2] instanceof String |
| } |
| } |