[6] | 1 | program example |
---|
| 2 | |
---|
| 3 | use flib_dom |
---|
| 4 | |
---|
| 5 | type(fnode), pointer :: myDoc |
---|
| 6 | type(fnode), pointer :: myNode, temp, refNode |
---|
| 7 | type(fnodeList), pointer :: myList |
---|
| 8 | |
---|
| 9 | myDoc => parsefile("pseudo.xml",verbose=.true.) |
---|
| 10 | call dumpTree(myDoc) |
---|
| 11 | call xmlize(myDoc,"out.xml") |
---|
| 12 | |
---|
| 13 | ! Get some nodes |
---|
| 14 | myList => getChildNodes(myDoc) |
---|
| 15 | print *, "Number of children of doc: ", getLength(myList) |
---|
| 16 | |
---|
| 17 | myNode => item(myList, 0) |
---|
| 18 | myList => getChildNodes(myNode) |
---|
| 19 | print *, "Number of children of first child of doc: ", getLength(myList) |
---|
| 20 | |
---|
| 21 | myNode => item(myList, 2) |
---|
| 22 | refNode => getNextSibling(myNode) |
---|
| 23 | call xmlize(refNode,"ref.xml") |
---|
| 24 | |
---|
| 25 | ! |
---|
| 26 | ! Note: a single element dumped |
---|
| 27 | ! |
---|
| 28 | call xmlize(myNode,"node.xml") |
---|
| 29 | temp => cloneNode(myNode,deep=.true.) |
---|
| 30 | call xmlize(temp,"clone.xml") |
---|
| 31 | |
---|
| 32 | call destroyNode(myNode) |
---|
| 33 | call xmlize(myDoc,"nosemilocal.xml") |
---|
| 34 | myNode => insertBefore(getParentNode(refNode),temp,refNode) |
---|
| 35 | call xmlize(myDoc,"all.xml") |
---|
| 36 | |
---|
| 37 | myList => getElementsByTagName(myDoc,"data") |
---|
| 38 | print *, "Number of data nodes: ", getLength(myList) |
---|
| 39 | |
---|
| 40 | call destroyNode(myDoc) |
---|
| 41 | |
---|
| 42 | print *, "Number of active nodes at the end: ", getNumberofAllocatedNodes() |
---|
| 43 | |
---|
| 44 | end program example |
---|