PluginProbe
Wp-Insert / 1.2
Wp-Insert v1.2
trunk 1.0 1.1 1.2 1.2.1 1.2.2 1.3.0 1.3.1 1.3.3 1.4 1.5.0 1.5.1 1.5.2 1.5.3 1.6.0 1.6.1 1.6.2 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 2.0 All 63 releases
wp-insert / fckeditor / editor / _source / classes / fckxml.js

fckxml.js in Wp-Insert 1.2, at fckeditor/editor/_source/classes/fckxml.js

217 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*
2
3 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4
5 * Copyright (C) 2003-2009 Frederico Caldeira Knabben
6
7 *
8
9 * == BEGIN LICENSE ==
10
11 *
12
13 * Licensed under the terms of any of the following licenses at your
14
15 * choice:
16
17 *
18
19 * - GNU General Public License Version 2 or later (the "GPL")
20
21 * http://www.gnu.org/licenses/gpl.html
22
23 *
24
25 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
26
27 * http://www.gnu.org/licenses/lgpl.html
28
29 *
30
31 * - Mozilla Public License Version 1.1 or later (the "MPL")
32
33 * http://www.mozilla.org/MPL/MPL-1.1.html
34
35 *
36
37 * == END LICENSE ==
38
39 *
40
41 * FCKXml Class: class to load and manipulate XML files.
42
43 * (IE specific implementation)
44
45 */
46
47
48
49 var FCKXml = function()
50
51 {
52
53 this.Error = false ;
54
55 }
56
57
58
59 FCKXml.GetAttribute = function( node, attName, defaultValue )
60
61 {
62
63 var attNode = node.attributes.getNamedItem( attName ) ;
64
65 return attNode ? attNode.value : defaultValue ;
66
67 }
68
69
70
71 /**
72
73 * Transforms a XML element node in a JavaScript object. Attributes defined for
74
75 * the element will be available as properties, as long as child element
76
77 * nodes, but the later will generate arrays with property names prefixed with "$".
78
79 *
80
81 * For example, the following XML element:
82
83 *
84
85 * <SomeNode name="Test" key="2">
86
87 * <MyChild id="10">
88
89 * <OtherLevel name="Level 3" />
90
91 * </MyChild>
92
93 * <MyChild id="25" />
94
95 * <AnotherChild price="499" />
96
97 * </SomeNode>
98
99 *
100
101 * ... results in the following object:
102
103 *
104
105 * {
106
107 * name : "Test",
108
109 * key : "2",
110
111 * $MyChild :
112
113 * [
114
115 * {
116
117 * id : "10",
118
119 * $OtherLevel :
120
121 * {
122
123 * name : "Level 3"
124
125 * }
126
127 * },
128
129 * {
130
131 * id : "25"
132
133 * }
134
135 * ],
136
137 * $AnotherChild :
138
139 * [
140
141 * {
142
143 * price : "499"
144
145 * }
146
147 * ]
148
149 * }
150
151 */
152
153 FCKXml.TransformToObject = function( element )
154
155 {
156
157 if ( !element )
158
159 return null ;
160
161
162
163 var obj = {} ;
164
165
166
167 var attributes = element.attributes ;
168
169 for ( var i = 0 ; i < attributes.length ; i++ )
170
171 {
172
173 var att = attributes[i] ;
174
175 obj[ att.name ] = att.value ;
176
177 }
178
179
180
181 var childNodes = element.childNodes ;
182
183 for ( i = 0 ; i < childNodes.length ; i++ )
184
185 {
186
187 var child = childNodes[i] ;
188
189
190
191 if ( child.nodeType == 1 )
192
193 {
194
195 var childName = '$' + child.nodeName ;
196
197 var childList = obj[ childName ] ;
198
199 if ( !childList )
200
201 childList = obj[ childName ] = [] ;
202
203
204
205 childList.push( this.TransformToObject( child ) ) ;
206
207 }
208
209 }
210
211
212
213 return obj ;
214
215 }
216
217