00010002000300040005
0006function
document2DOM
() {
0007 var
root
=
new
ActiveXObject
(
"MSXML.DOMDocument"
);
0008 root
.
async
=
false
;
0009 root
.
resolveExternals
=
false
;
0010 loadNode
(
root
,
root
,
document
);
0011 return
root
;
0012}
0013
0014function
loadNode
(
root
,
parentNode
,
htmlNode
) {
0015 switch
(
htmlNode
.
nodeType
) {
0016 0017 case
8
:
0018 parentNode
.
appendChild
(
root
.
createComment
(
htmlNode
.
nodeValue
) );
0019 return
;
0020
0021 0022 case
4
:
0023 parentNode
.
appendChild
(
root
.
createCDATASection
(
htmlNode
.
nodeValue
)
);
0024 return
;
0025
0026 0027 case
3
:
0028 parentNode
.
appendChild
(
root
.
createTextNode
(
htmlNode
.
nodeValue
) );
0029 return
;
0030
0031 0032 case
9
:
0033 var
children
=
htmlNode
.
childNodes
;
0034 for
(
var
i
=
0
;
i
<
children
.
length
;
i
++
) {
0035 loadNode
(
root
,
root
,
children
[
i
]);
0036 }
0037 return
;
0038
0039 0040 case
1
:
0041 var
element
=
root
.
createElement
(
htmlNode
.
nodeName
)
0042 parentNode
.
appendChild
(
element
);
0043
0044 0045 for
(
var
i
=
0
;
i
<
htmlNode
.
attributes
.
length
;
i
++
) {
0046 var
attr
=
htmlNode
.
attributes
[
i
];
0047 if
(
attr
.
nodeValue
&&
attr
.
specified
) {
0048 var
attrNode
=
root
.
createAttribute
(
attr
.
nodeName
);
0049 attrNode
.
value
=
attr
.
nodeValue
;
0050 element
.
setAttributeNode
(
attrNode
);
0051 }
0052 }
0053
0054 0055 var
children
=
htmlNode
.
childNodes
;
0056 for
(
var
i
=
0
;
i
<
children
.
length
;
i
++
) {
0057 loadNode
(
root
,
element
,
children
[
i
]);
0058 }
0059 return
;
0060 }
0061}
0062
0063function
test
() {
0064 var
result
=
document2DOM
();
0065 alert
(
result
.
xml
)
0066}
0067
Coloring style :