source: XMLF90/src/dom/m_dom_document.f90 @ 6

Last change on this file since 6 was 6, checked in by ymipsl, 15 years ago

Import des sources XMLF90

File size: 3.1 KB
Line 
1module m_dom_document
2
3use m_dom_types
4use m_strings
5
6private
7
8  !------------------------------------------------------- 
9  ! METHODS FOR DOCUMENT NODES
10  !-------------------------------------------------------   
11  public :: createDocumentNode
12  public :: createDocumentFragment
13  public :: createTextNode
14  public :: createAttribute
15  public :: createElement
16  public :: createComment
17  public :: createCdataSection
18
19CONTAINS
20
21  !-----------------------------------------------------------
22  ! METHODS FOR DOCUMENT NODES
23  !-----------------------------------------------------------
24
25  function createDocumentNode()
26
27    type(fnode), pointer :: createDocumentNode
28   
29    createDocumentNode => createNode()
30    createDocumentNode % nodeType = DOCUMENT_NODE
31    createDocumentNode % nodeName = "#document"
32   
33  end function createDocumentNode
34!-------------------------------------------------------------------
35  function createDocumentFragment()
36
37    type(fnode), pointer :: createDocumentFragment
38   
39    createDocumentFragment => createNode()
40    createDocumentFragment % nodeType = DOCUMENT_FRAGMENT_NODE
41    createDocumentFragment % nodeName = "#document-fragment"
42   
43  end function createDocumentFragment
44!-------------------------------------------------------------------
45  function createTextNode(data)
46
47    character(len=*), intent(in) :: data
48    type(fnode), pointer :: createTextNode
49   
50    createTextNode => createNode()
51    createTextNode % nodeType = TEXT_NODE
52    createTextNode % nodeName = "#text"
53    createTextNode % nodeValue = data  ! NB need to split this string
54                                       ! across several nodes
55   
56  end function createTextNode
57
58  !-----------------------------------------------------------
59
60  function createAttribute(name)
61   
62    character(len=*), intent(in) :: name
63    type(fnode), pointer :: createAttribute
64 
65    createAttribute => createNode()
66    createAttribute % nodeName = name
67    createAttribute % nodeType = ATTRIBUTE_NODE
68 
69  end function createAttribute
70
71  !-----------------------------------------------------------
72
73  function createElement(tagName)
74   
75    character(len=*), intent(in) :: tagName
76    type(fnode), pointer :: createElement
77 
78    createElement => createNode()
79    createElement % nodeName = tagName
80    createElement % nodeType = ELEMENT_NODE
81 
82  end function createElement
83
84  !-----------------------------------------------------------
85
86  function createComment(data)
87   
88    character(len=*), intent(in) :: data
89    type(fnode), pointer :: createComment
90 
91    createComment => createNode()
92    createComment % nodeName = "#comment"
93    createComment % nodeValue = data
94    createComment % nodeType = COMMENT_NODE
95 
96  end function createComment
97
98  !-----------------------------------------------------------
99
100  function createCdataSection(data)
101   
102    character(len=*), intent(in) :: data
103    type(fnode), pointer :: createCdataSection
104 
105    createCdataSection => createNode()
106    createCdataSection % nodeName = "#cdata-section"
107    createCdataSection % nodeValue = data
108    createCdataSection % nodeType = CDATA_SECTION_NODE
109 
110  end function createCdataSection
111
112 
113end module m_dom_document
Note: See TracBrowser for help on using the repository browser.