04.11.2015 Views

javascript

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 15: XML in JavaScript<br />

using the MSXML2.FreeThreadedDOMDocument ActiveX object, which supports all of the same<br />

interfaces as a normal DOM document in IE . This object needs to be created using the most up - to - date<br />

version as well. For example:<br />

function createThreadSafeDocument(){<br />

if (typeof arguments.callee.activeXString != “string”){<br />

var versions = [“MSXML2.FreeThreadedDOMDocument.6.0”,<br />

“MSXML2.FreeThreadedDOMDocument.3.0”,<br />

“MSXML2.FreeThreadedDOMDocument”];<br />

}<br />

for (var i=0,len=versions.length; i < len; i++){<br />

try {<br />

new ActiveXObject(versions[i]);<br />

arguments.callee.activeXString = versions[i];<br />

break;<br />

} catch (ex){<br />

//skip<br />

}<br />

}<br />

}<br />

return new ActiveXObject(arguments.callee.activeXString);<br />

Aside from the different signature, using a thread - safe XML DOM document is the same as using the<br />

normal kind, as shown here:<br />

var xsltdom = createThreadSafeDocument();<br />

xsltdom.async = false;<br />

xsltdom.load(“employees.xslt”);<br />

After the free - threaded DOM document is created and loaded, it must be assigned to an XSL template,<br />

which is another ActiveX object. The template is used to create an XSL processor object that can then be<br />

used to transform an XML document. Once again, the most appropriate version must be created, like this:<br />

function createXSLTemplate(){<br />

if (typeof arguments.callee.activeXString != “string”){<br />

var versions = [“MSXML2.XSLTemplate.6.0”,<br />

“MSXML2.XSLTemplate.3.0”,<br />

“MSXML2.XSLTemplate “];<br />

}<br />

for (var i=0,len=versions.length; i < len; i++){<br />

try {<br />

new ActiveXObject(versions[i]);<br />

arguments.callee.activeXString = versions[i];<br />

break;<br />

} catch (ex){<br />

//skip<br />

}<br />

}<br />

}<br />

return new ActiveXObject(arguments.callee.activeXString);<br />

540

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!