• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## Licensed to the Apache Software Foundation (ASF) under one
2## or more contributor license agreements.  See the NOTICE file
3## distributed with this work for additional information
4## regarding copyright ownership.  The ASF licenses this file
5## to you under the Apache License, Version 2.0 (the
6## "License"); you may not use this file except in compliance
7## with the License.  You may obtain a copy of the License at
8##
9##   http://www.apache.org/licenses/LICENSE-2.0
10##
11## Unless required by applicable law or agreed to in writing,
12## software distributed under the License is distributed on an
13## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14## KIND, either express or implied.  See the License for the
15## specific language governing permissions and limitations
16## under the License.
17#macro ( recursive $e $indent )
18#if( $e.getChildren().size() > 0 )
19$indent <$e.getName()>
20#foreach ($child in $e.getChildren() )
21#recursive( $child "$indent  " )
22#end
23$indent </$e.getName()>
24#else
25$indent <$e.getName()>
26$indent    $e.getTextTrim()
27$indent </$e.getName()>
28#end
29#end
30
31#set($i = " ")
32
33First, we print out the document tree with a
34recursive Velocimacro :
35
36#recursive( $root.getRootElement() $i )
37
38
39Next, we access pieces of data directly :
40
41email : $root.getRootElement().getChild("properties").getChild("author").getChild("email").getText()
42last name :  $root.getRootElement().getChild("properties").getChild("author").getChild("name").getChild("last").getChild("full").getText()
43