<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DigiTechLog Dot Com &#187; XML</title>
	<atom:link href="http://digitechlog.com/tag/xml/feed" rel="self" type="application/rss+xml" />
	<link>http://digitechlog.com</link>
	<description>Adobe AIR、Flex、Flash、Java</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:46:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JSON(json.as)でFlex／Flashアプリケーションにデータを交換する</title>
		<link>http://digitechlog.com/2009/05/12/how-to-use-json-to-exchange-data-in-flex-flash.html</link>
		<comments>http://digitechlog.com/2009/05/12/how-to-use-json-to-exchange-data-in-flex-flash.html#comments</comments>
		<pubDate>Tue, 12 May 2009 03:30:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/05/12/how-to-use-json-to-exchange-data-in-flex-flash.html</guid>
		<description><![CDATA[Flex/Flashでのウェブアプリケーションでは、サーバサイドとデータの交換は必ず必要なので、同じのデータ情報に対して、少ないデータ量で取れるとウェブアプリケーションにもスピードアップできます。今回紹介する「JSON」では、XMLよりも少ないデータ量でFLASHとサーバサイドスクリプト間のデータのやりとりを可能にできます。
JSONとは，構造化されたデータを記述するための，テキスト・ベースのデータ記述言語の一つです。JavaScript（ECMAScript）でオブジェクト・リテラルを記述する構文をそのまま使っているため，人間が読んでわかりやすく，プログラムでも容易に処理できるという特徴があります。

XMLより軽量なJSONはまさにこのような用途に適した形式です。例えば，Webアプリケーションのクライアント構築で盛んに使われるようになった「Ajax」は，もともとXMLデータをページ遷移と非同期にやり取りしていく形態を指していましたが，現在はXMLの代わりにJSONを使うケースが増えています。
JSONの構文などの概要は，「Introducing JSON」というWebサイトに各国語でまとめられています。
JavaScriptプログラム中でこのJSON形式データを処理するには，evalメソッドを使います。evalメソッドは，引数として与えた文字列をJavaScriptプログラムとして解釈するメソッドで，JSON形式の文字列をオブジェクトにしてくれます。
JSONとして情報をやりとりするには「JSON.as」（公式ページからダウンロードできる）を利用します。　巷のサイトの中では#includeを使ってやってるところもありますが、ActionScript2.0ではエラーが起こりますので、importを使って読み込みます。
import JSON;&#160;&#160; //埋め込みたいFlashファイルと同階層に「JSON.as」を配置します。
これでJSONクラスを扱うことができるようになります。JSON式のデータの記法は、複数の要素は配列でまとめ、要素内はオブジェクトでまとめます。かんたんに書くと以下のようになります。
[{"属性名1":"属性値1"}, {"属性名2":"属性値2"},...]
以下のソースの様で、JSON文字列をパースし、扱いやすい配列に変換してみます。
import JSON;
jsonstr = '[{&#34;myprop1&#34;:&#34;myvalue1&#34;},{&#34;myprop2&#34;:&#34;myvalue2&#34;}]';
jsonlist = JSON.parse(jsonstr);
this.stop();
逆にFlash上の配列やオブジェクトをJSON文字列にする方法は以下のようにstringify関数を実行します。
myObj1 = new Object();
myObj1.myprop1 = “myvalue1″;
myObj2 = new&#160;Object();
myObj2.myprop2 = “myvalue2″;
myArray = Array(myObj1, myObj2);
jsonstring = JSON.stringify(myArray);
関連リンク
http://www.json.org/&#160;&#160; 公式ページ
http://www.ironhearts.com/diary/archives/001338.html&#160;&#160;&#160; PHPからJSONでFlashにデータを渡す
Related Posts

Flash Builder 4コンパイラーの不具合( FB 4.0 build 272416 )
Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム
FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン
glaze: ActionScript用2D物理演算エンジン
FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ
Sandy 3D: オープンソースのFlash用3D描画エンジン
Cast3D: Flashのアニメーションフレームワークライブラリ
ActionScriptで実現するテキストサーチエンジンクラス

]]></description>
			<content:encoded><![CDATA[<p>Flex/Flashでのウェブアプリケーションでは、サーバサイドとデータの交換は必ず必要なので、同じのデータ情報に対して、少ないデータ量で取れるとウェブアプリケーションにもスピードアップできます。今回紹介する「JSON」では、XMLよりも少ないデータ量でFLASHとサーバサイドスクリプト間のデータのやりとりを可能にできます。</p>
<p>JSONとは，構造化されたデータを記述するための，テキスト・ベースのデータ記述言語の一つです。JavaScript（ECMAScript）でオブジェクト・リテラルを記述する構文をそのまま使っているため，人間が読んでわかりやすく，プログラムでも容易に処理できるという特徴があります。</p>
<p><span id="more-472"></span>
<p>XMLより軽量なJSONはまさにこのような用途に適した形式です。例えば，Webアプリケーションのクライアント構築で盛んに使われるようになった「Ajax」は，もともとXMLデータをページ遷移と非同期にやり取りしていく形態を指していましたが，現在はXMLの代わりにJSONを使うケースが増えています。</p>
<p>JSONの構文などの概要は，「<a href="http://www.json.org/">Introducing JSON</a>」というWebサイトに各国語でまとめられています。</p>
<p>JavaScriptプログラム中でこのJSON形式データを処理するには，evalメソッドを使います。evalメソッドは，引数として与えた文字列をJavaScriptプログラムとして解釈するメソッドで，JSON形式の文字列をオブジェクトにしてくれます。</p>
<p>JSONとして情報をやりとりするには「JSON.as」（公式ページからダウンロードできる）を利用します。　巷のサイトの中では#includeを使ってやってるところもありますが、ActionScript2.0ではエラーが起こりますので、importを使って読み込みます。</p>
<p>import JSON;&nbsp;&nbsp; //埋め込みたいFlashファイルと同階層に「JSON.as」を配置します。
<p>これでJSONクラスを扱うことができるようになります。JSON式のデータの記法は、複数の要素は配列でまとめ、要素内はオブジェクトでまとめます。かんたんに書くと以下のようになります。
<p>[{"属性名1":"属性値1"}, {"属性名2":"属性値2"},...]
<p>以下のソースの様で、JSON文字列をパースし、扱いやすい配列に変換してみます。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">JSON</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">jsonstr</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">[{&quot;myprop1&quot;:&quot;myvalue1&quot;},{&quot;myprop2&quot;:&quot;myvalue2&quot;}]</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">jsonlist</span><span style="color: Gray;"> = </span><span style="color: Blue;">JSON</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Blue;">jsonstr</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">this</span><span style="color: Gray;">.</span><span style="color: Teal;">stop</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li></ol></div>
<p>逆にFlash上の配列やオブジェクトをJSON文字列にする方法は以下のようにstringify関数を実行します。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">myObj1</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Object</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">myObj1</span><span style="color: Gray;">.</span><span style="color: Blue;">myprop1</span><span style="color: Gray;"> = “</span><span style="color: Blue;">myvalue1</span><span style="color: Gray;">″;</span></li>
<li><span style="color: Blue;">myObj2</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">Object</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">myObj2</span><span style="color: Gray;">.</span><span style="color: Blue;">myprop2</span><span style="color: Gray;"> = “</span><span style="color: Blue;">myvalue2</span><span style="color: Gray;">″;</span></li>
<li><span style="color: Blue;">myArray</span><span style="color: Gray;"> = </span><span style="color: Teal;">Array</span><span style="color: Olive;">(</span><span style="color: Blue;">myObj1</span><span style="color: Gray;">, </span><span style="color: Blue;">myObj2</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">jsonstring</span><span style="color: Gray;"> = </span><span style="color: Blue;">JSON</span><span style="color: Gray;">.</span><span style="color: Blue;">stringify</span><span style="color: Olive;">(</span><span style="color: Blue;">myArray</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p><strong>関連リンク</strong></p>
<p><a title="http://www.json.org/" href="http://www.json.org/">http://www.json.org/</a>&nbsp;&nbsp; 公式ページ</p>
<p><a href="http://www.ironhearts.com/diary/archives/001338.html">http://www.ironhearts.com/diary/archives/001338.html</a><font color="#000000">&nbsp;&nbsp;&nbsp; </font>PHPからJSONでFlashにデータを渡す</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2010/04/26/flash-builder-4-build-272416-compiler-bug-and-solutions.html" title="Flash Builder 4コンパイラーの不具合( FB 4.0 build 272416 )">Flash Builder 4コンパイラーの不具合( FB 4.0 build 272416 )</a></li>
<li><a href="http://digitechlog.com/2010/02/21/sazamek-flash-based-online-audio-manipulating-platform-with-as3-open-source-library.html" title="Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム">Sazameki: Flashを使ったオーディオ操作のためのオンラインプラットホーム</a></li>
<li><a href="http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html" title="FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン">FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン</a></li>
<li><a href="http://digitechlog.com/2010/01/30/glaze-2d-rigid-body-dynamics-game-engine-for-actionsctipt-3.html" title="glaze: ActionScript用2D物理演算エンジン">glaze: ActionScript用2D物理演算エンジン</a></li>
<li><a href="http://digitechlog.com/2010/01/26/flartoolkit-open-source-augmented-reality-in-flash.html" title="FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ">FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/25/sandy-flash-3d-engine-available-in-as2-as3-and-haxe.html" title="Sandy 3D: オープンソースのFlash用3D描画エンジン">Sandy 3D: オープンソースのFlash用3D描画エンジン</a></li>
<li><a href="http://digitechlog.com/2010/01/12/cast3d-3d-animation-framework-library-for-adobe-flash-in-actionscript3.html" title="Cast3D: Flashのアニメーションフレームワークライブラリ">Cast3D: Flashのアニメーションフレームワークライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/12/03/textsearchengine-flash-text-search-engine-class.html" title="ActionScriptで実現するテキストサーチエンジンクラス">ActionScriptで実現するテキストサーチエンジンクラス</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/05/12/how-to-use-json-to-exchange-data-in-flex-flash.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaでXMLを操作の４種類方法とサンプルソース</title>
		<link>http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html</link>
		<comments>http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html#comments</comments>
		<pubDate>Tue, 24 Feb 2009 16:43:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[DOM4J]]></category>
		<category><![CDATA[JDOM]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html</guid>
		<description><![CDATA[本文はJavaでXMLファイルを操作するDOM、SAX、JDOMとDOM４Jという４種類の説明とサンプルソースです。
 
・DOM
DOMはDocument Object Modelの略です。XMLにアクセスするためのAPI(Application Programming Interface)です。W3Cによって仕様が公開されています。DOMは、XML文書をツリー構造として扱います。
 これを「DOMツリー」といいます。XML文書全体を解析してDOMツリーとしてメモリ上に保存するのでデータの多いXML文書を解析する場合は多くのメモリを消費します。
以下はサンプル用のhelloworld.xml
 
&#60;?xml version=”1.0″ encoding=”Shift_JIS” ?&#62;
&#160;
&#60;message&#62;Hello World&#60;/message&#62;
解析用のJavaソースです。
import java.io.*;
import&#160;javax.xml.parsers.*;
import&#160;org.w3c.dom.Document;
import&#160;org.w3c.dom.Element;
&#160;
public&#160;class HelloWorldDOM {
&#160; public&#160;static void main (String[] args) {
&#160; &#160; try&#160;{
&#160; &#160; &#160; // ドキュメントビルダーファクトリを生成
&#160; &#160; &#160; DocumentBuilderFactory&#160;dbfactory = DocumentBuilderFactory.newInstance();
&#160; &#160; &#160; // ドキュメントビルダーを生成
&#160; &#160; &#160; DocumentBuilder&#160;builder = dbfactory.newDocumentBuilder();
&#160; &#160; &#160; // パースを実行してDocumentオブジェクトを取得
&#160; &#160; &#160; Document&#160;doc = builder.parse(new File(&#34;helloworld.xml&#34;));
&#160; &#160; &#160; // ルート要素を取得（タグ名：message）
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>本文はJavaでXMLファイルを操作するDOM、SAX、JDOMとDOM４Jという４種類の説明とサンプルソースです。</p>
<p><span id="more-331"></span> </p>
<p><strong>・DOM</strong></p>
<p>DOMはDocument Object Modelの略です。XMLにアクセスするためのAPI(Application Programming Interface)です。W3Cによって仕様が公開されています。DOMは、XML文書をツリー構造として扱います。</p>
<p> これを「DOMツリー」といいます。XML文書全体を解析してDOMツリーとしてメモリ上に保存するのでデータの多いXML文書を解析する場合は多くのメモリを消費します。</p>
<p>以下はサンプル用のhelloworld.xml</p>
<p> <br/></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;?</span><span style="color: Green;">xml</span><span style="color: Gray;"> </span><span style="color: #00008b;">version</span><span style="color: Gray;">=”</span><span style="color: #00008b;">1</span><span style="color: Gray;">.</span><span style="color: #00008b;">0</span><span style="color: Gray;">″ </span><span style="color: #00008b;">encoding</span><span style="color: Gray;">=”</span><span style="color: #00008b;">Shift_JIS</span><span style="color: Gray;">” </span><span style="color: Olive;">?&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">message</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Hello World</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">message</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>解析用のJavaソースです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">javax</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">parsers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">w3c</span><span style="color: Gray;">.</span><span style="color: Blue;">dom</span><span style="color: Gray;">.</span><span style="color: Blue;">Document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">w3c</span><span style="color: Gray;">.</span><span style="color: Blue;">dom</span><span style="color: Gray;">.</span><span style="color: Blue;">Element</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">HelloWorldDOM</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ドキュメントビルダーファクトリを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">DocumentBuilderFactory</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">dbfactory</span><span style="color: Gray;"> = </span><span style="color: Blue;">DocumentBuilderFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newInstance</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ドキュメントビルダーを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">DocumentBuilder</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">builder</span><span style="color: Gray;"> = </span><span style="color: Blue;">dbfactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newDocumentBuilder</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// パースを実行してDocumentオブジェクトを取得</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Document</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doc</span><span style="color: Gray;"> = </span><span style="color: Blue;">builder</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">helloworld.xml</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ルート要素を取得（タグ名：message）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">root</span><span style="color: Gray;"> = </span><span style="color: Blue;">doc</span><span style="color: Gray;">.</span><span style="color: Blue;">getDocumentElement</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 最初の子ノード（テキストノード）の値を表示</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">print</span><span style="color: Olive;">(</span><span style="color: Blue;">root</span><span style="color: Gray;">.</span><span style="color: Blue;">getFirstChild</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">getNodeValue</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">Exception</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">printStackTrace</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>・<strong>SAX</strong></p>
<p>SAXはSimple API for XMLの略です。DOM(Document Object Model)と並んでXMLを解析するために使用する標準APIです。SAXはXML文書を先頭から読んでいきそこで発生したイベントをアプリケーションでとらえて処理するAPIです。DOMに比べて、メモリ消費量が少ない、解析速度が速いなどのメリットがありますが、ノードの追加、削除など、XML文書を更新する機能はありません。</p>
<p>SAXで上記の同じのhelloworld.xmlを解析Javaソースです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">javax</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">parsers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">sax</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">sax</span><span style="color: Gray;">.</span><span style="color: Blue;">helpers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">HelloWorldSax</span><span style="color: Gray;"> </span><span style="color: Green;">extends</span><span style="color: Gray;"> </span><span style="color: Blue;">DefaultHandler</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">argv</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// SAXパーサーファクトリを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SAXParserFactory</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">spfactory</span><span style="color: Gray;"> = </span><span style="color: Blue;">SAXParserFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newInstance</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// SAXパーサーを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SAXParser</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">parser</span><span style="color: Gray;"> = </span><span style="color: Blue;">spfactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newSAXParser</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// XMLファイルを指定されたデフォルトハンドラーで処理します</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">parser</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">helloworld.xml</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">HelloWorldSax</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">Exception</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">printStackTrace</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * ドキュメント開始時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">startDocument</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ドキュメント開始</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * 要素の開始タグ読み込み時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">startElement</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">uri</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">localName</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">qName</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">Attributes</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">attributes</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">要素開始:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">qName</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * テキストデータ読み込み時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">characters</span><span style="color: Olive;">(</span><span class="hl-types">char</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">ch</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">offset</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">テキストデータ：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">String</span><span style="color: Olive;">(</span><span style="color: Blue;">ch</span><span style="color: Gray;">, </span><span style="color: Blue;">offset</span><span style="color: Gray;">, </span><span style="color: Blue;">length</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * 要素の終了タグ読み込み時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">endElement</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">uri</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">localName</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">qName</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">要素終了:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">qName</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * ドキュメント終了時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">endDocument</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ドキュメント終了</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>・<strong>JDOM</strong></p>
<p>JDOM（Java Document Object Model）はJavaでXMLを容易に扱うため、DOMより使いやすいAPIを提供することを目指して設計された軽量XMLライブラリです。</p>
<p>JDOMは以下のような特徴があります：<br />１、シンプルなAPIは、Javaプログラマにとって使いやすい<br />２、DOMと違って、Javaに特化した機能を提供しているため、生産性がDOMより優れています<br />３、SAXやDOMをサポートしています<br />４、軽量であるため、高速に動作します </p>
<p>以下はJDOMでhelloworld.xmlを読んでるJavaソース</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">File</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">Element</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">Document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">JDOMException</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">input</span><span style="color: Gray;">.</span><span style="color: Blue;">SAXBuilder</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Main</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　</span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　　</span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　　　</span><span style="color: Blue;">Document</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doc</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SAXBuilder</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">build</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">helloworld</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">”</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">　　　</span><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">root</span><span style="color: Gray;"> = </span><span style="color: Blue;">doc</span><span style="color: Gray;">.</span><span style="color: Blue;">getRootElement</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">　　</span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">JDOMException</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　　　</span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">　　</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">　</span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>・<strong>DOM4J </strong><a href="http://dom4j.sourceforge.net"><strong></strong></a></p>
<p>dom4j は JDOM の派生と言われています。Javaプラットフォーム上でXML, XPath, XSLTを扱える、単純で柔軟性に富んだオープンソース・ライブラリです。Javaコレクション・フレームワークを使え、DOM, SAX, JAXPを完全にサポートしています。 </p>
<p>以下はDOM4Jでhelloworld.xmlを生成するJavaソース</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">dom4j</span><span style="color: Gray;">.</span><span style="color: Blue;">Document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">dom4j</span><span style="color: Gray;">.</span><span style="color: Blue;">DocumentHelper</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">dom4j</span><span style="color: Gray;">.</span><span style="color: Blue;">Element</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Users</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Document</span><span style="color: Gray;"> </span><span style="color: Blue;">createDocument</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">Document</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">document</span><span style="color: Gray;"> = </span><span style="color: Blue;">DocumentHelper</span><span style="color: Gray;">.</span><span style="color: Blue;">createDocument</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">root</span><span style="color: Gray;"> = </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">addElement</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">messages</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">me</span><span style="color: Gray;"> = </span><span style="color: Blue;">root</span><span style="color: Gray;">.</span><span style="color: Blue;">addElement</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">message</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addAttribute</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">attr</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">A message</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addText</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">message</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>リソース</strong><br />
・<a title="http://www.ibm.com/developerworks/library/x-dom4j.html?S_TACT=105AGX52&amp;S_CMP=cn-a-x" href="http://www.ibm.com/developerworks/library/x-dom4j.html?S_TACT=105AGX52&amp;S_CMP=cn-a-x">http://www.ibm.com/developerworks/library/x-dom4j.html?S_TACT=105AGX52&amp;S_CMP=cn-a-x</a> DOM4Jについてトライアル<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/01/08/the-class-source-of-read-and-write-ini-file-in-java.html" title="Javaでiniファイルを読み書きクラスソース">Javaでiniファイルを読み書きクラスソース</a></li>
<li><a href="http://digitechlog.com/2009/01/15/how-to-parse-xml-in-jquery-with-sample-source-code.html" title="jQueryを使ってXMLを解析操作する（サンプルソースコード含める）">jQueryを使ってXMLを解析操作する（サンプルソースコード含める）</a></li>
<li><a href="http://digitechlog.com/2009/05/12/how-to-use-json-to-exchange-data-in-flex-flash.html" title="JSON(json.as)でFlex／Flashアプリケーションにデータを交換する">JSON(json.as)でFlex／Flashアプリケーションにデータを交換する</a></li>
<li><a href="http://digitechlog.com/2009/04/10/as3cannonball-dom-html-css-browser-library-for-actionscript-3.html" title="as3cannonball: DOM+HTML+CSS+BrowserのActionScript 3ライブラリ">as3cannonball: DOM+HTML+CSS+BrowserのActionScript 3ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/22/s2x-is-a-python-script-that-allows-the-sol-file-format-represented-as-xml.html" title="s2x: Flashのcookieファイル(*.sol)とXMLフォーマットの互换用Pythonスクリプトソース">s2x: Flashのcookieファイル(*.sol)とXMLフォーマットの互换用Pythonスクリプトソース</a></li>
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html" title="swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール">swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</a></li>
<li><a href="http://digitechlog.com/2008/12/01/how-to-read-and-write-micorsoft-excel-csv-file-with-bufferedreader-filereader-class-in-java.html" title="JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）">JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>s2x: Flashのcookieファイル(*.sol)とXMLフォーマットの互换用Pythonスクリプトソース</title>
		<link>http://digitechlog.com/2009/02/22/s2x-is-a-python-script-that-allows-the-sol-file-format-represented-as-xml.html</link>
		<comments>http://digitechlog.com/2009/02/22/s2x-is-a-python-script-that-allows-the-sol-file-format-represented-as-xml.html#comments</comments>
		<pubDate>Sun, 22 Feb 2009 12:04:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[s2x]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[スクリプト]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/22/s2x-is-a-python-script-that-allows-the-sol-file-format-represented-as-xml.html</guid>
		<description><![CDATA[すみませんけど、「古い」の話だかも＾＾）、WINDOWSシステムに、「Application Data」→「Macromedia」（現在はAdobe）→「Flash Player」の配下の何にかフォルダの下には、「.sol」ファイルというのがある可能性があります。これって一体何ですか？
SOLファイルというのは、Flashのcookieファイルです。「Flash Player が利異様するクッキー（.solファイル）には、システムファイルの場所を推定できるような情報が含まれている。一方、リモートからその場所にファイルを保存させることができるので、クッキーにスクリプトを含ませておけばローカルのスクリプトとしてブラウザから実行させることができてしまう。ただし、そのためには攻撃者がローカルのユーザ名を知っている必要がある。」という弱点があります（現在のバージョンはその問題がなくなるね）。
 
以前、solファイルの内容を見に安いXMLに変換するため「s2x」というPythonスクリプトがあります。持っているリリースされた公式サイトには、すでにアクセスできないようです。そのスクリプト、現在のFlash Player環境などでは、すでに意味がないと思いますが、開発者に対しては、いい資料だと思います。
※XMLとは、文書やデータの意味や構造を記述するためのマークアップ言語の一つ。マークアップ言語とは、「タグ」と呼ばれる特定の文字列で地の文に構造を埋め込んでいく言語のことで、XMLはユーザが独自のタグを指定できることから、マークアップ言語を作成するためのメタ言語とも言われる。
ソースは以下のようです。
import sys
from&#160;struct import *
from&#160;xml.dom import minidom
#s2x Runtime Error Class Definition:
class&#160;s2xErr(Exception):
&#160; &#160; def&#160;__init__(self,msg):
&#160; &#160; &#160; &#160; self.msg=msg
#constants start:
#------------------------------------------------------------#
NUMBER='\x00'
BOOLEAN='\x01'
STRING='\x02'
OBJOBJ='\x03'
NULL='\x05'
UNDEF='\x06'
OBJARR='\x08'
#RAWARR='\x0A'
OBJDATE='\x0B'
OBJM='\x0D'
OBJXML='\x0F'
OBJCC='\x10'
#constants end.
#------------------------------------------------------------#
argv=sys.argv
if&#160;len(argv)&#60;3:
&#160; &#160; print&#160;'s2x v 0.75 by iceeLyne, Dec., 2003.'
&#160; &#160; print&#160;'usage:'
&#160; &#160; print&#160;'python s2x.py -x foo.sol [foo.xml]'
&#160; &#160; print&#160;'python s2x.py -s foo.xml [foo.sol]'
else:
&#160; &#160; argvSw=argv[1]
&#160; &#160; argvInpFile=argv[2]
&#160; &#160; if&#160;len(argv)&#62;3:
&#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>すみませんけど、「古い」の話だかも＾＾）、WINDOWSシステムに、「Application Data」→「Macromedia」（現在はAdobe）→「Flash Player」の配下の何にかフォルダの下には、「.sol」ファイルというのがある可能性があります。これって一体何ですか？</p>
<p>SOLファイルというのは、Flashのcookieファイルです。「Flash Player が利異様するクッキー（.solファイル）には、システムファイルの場所を推定できるような情報が含まれている。一方、リモートからその場所にファイルを保存させることができるので、クッキーにスクリプトを含ませておけばローカルのスクリプトとしてブラウザから実行させることができてしまう。ただし、そのためには攻撃者がローカルのユーザ名を知っている必要がある。」という弱点があります（現在のバージョンはその問題がなくなるね）。</p>
<p><span id="more-327"></span> </p>
<p>以前、solファイルの内容を見に安いXMLに変換するため「s2x」というPythonスクリプトがあります。持っているリリースされた公式サイトには、すでにアクセスできないようです。そのスクリプト、現在のFlash Player環境などでは、すでに意味がないと思いますが、開発者に対しては、いい資料だと思います。</p>
<p>※XMLとは、文書やデータの意味や構造を記述するためのマークアップ言語の一つ。マークアップ言語とは、「タグ」と呼ばれる特定の文字列で地の文に構造を埋め込んでいく言語のことで、XMLはユーザが独自のタグを指定できることから、マークアップ言語を作成するためのメタ言語とも言われる。</p>
<p>ソースは以下のようです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">sys</span></li>
<li><span style="color: Green;">from</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">struct</span><span style="color: Gray;"> </span><span style="color: Green;">import</span><span style="color: Gray;"> *</span></li>
<li><span style="color: Green;">from</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">dom</span><span style="color: Gray;"> </span><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">minidom</span></li>
<li><span style="color: #ffa500;">#s2x Runtime Error Class Definition:</span></li>
<li><span style="color: Green;">class</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: Green;">Exception</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">__init__</span><span style="color: Olive;">(</span><span style="color: Blue;">self</span><span style="color: Gray;">,</span><span style="color: Blue;">msg</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">self</span><span style="color: Gray;">.</span><span style="color: Blue;">msg</span><span style="color: Gray;">=</span><span style="color: Blue;">msg</span></li>
<li><span style="color: #ffa500;">#constants start:</span></li>
<li><span style="color: #ffa500;">#------------------------------------------------------------#</span></li>
<li><span style="color: Blue;">NUMBER</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">BOOLEAN</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">01</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">STRING</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">02</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">OBJOBJ</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">03</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">NULL</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">05</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">UNDEF</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">06</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">OBJARR</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">08</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: #ffa500;">#RAWARR='\x0A'</span></li>
<li><span style="color: Blue;">OBJDATE</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">0B</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">OBJM</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">0D</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">OBJXML</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">0F</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Blue;">OBJCC</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">10</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: #ffa500;">#constants end.</span></li>
<li><span style="color: #ffa500;">#------------------------------------------------------------#</span></li>
<li><span style="color: Blue;">argv</span><span style="color: Gray;">=</span><span style="color: Blue;">sys</span><span style="color: Gray;">.</span><span style="color: Blue;">argv</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">argv</span><span style="color: Olive;">)</span><span style="color: Gray;">&lt;</span><span style="color: Maroon;">3</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">s2x v 0.75 by iceeLyne, Dec., 2003.</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">usage:</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">python s2x.py -x foo.sol [foo.xml]</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">python s2x.py -s foo.xml [foo.sol]</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">argvSw</span><span style="color: Gray;">=</span><span style="color: Blue;">argv</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">argvInpFile</span><span style="color: Gray;">=</span><span style="color: Blue;">argv</span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">argv</span><span style="color: Olive;">)</span><span style="color: Gray;">&gt;</span><span style="color: Maroon;">3</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">=</span><span style="color: Blue;">argv</span><span style="color: Olive;">[</span><span style="color: Maroon;">3</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">=</span><span style="color: #8b0000;">''</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">argvSw</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">-x</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;"># parse sol to xml</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">=</span><span style="color: Teal;">open</span><span style="color: Olive;">(</span><span style="color: Blue;">argvInpFile</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">rb</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">except</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">IOError</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Could Not Open The Input File: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">argvInpFile</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">num2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">s</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">8</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">7F</span><span style="color: Navy;">\x</span><span style="color: Red;">F0</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">Infinity</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">FF</span><span style="color: Navy;">\x</span><span style="color: Red;">F0</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">-Infinity</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">7F</span><span style="color: Navy;">\x</span><span style="color: Red;">F8</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">NaN</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nValue</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;d</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">s</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#Double,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: Teal;">str</span><span style="color: Olive;">(</span><span style="color: Blue;">nValue</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">number</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">value</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sValue</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bol2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">b</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">b</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">false</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">b</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">01</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">true</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Warning: Boolean Value Error.</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">true</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">boolean</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">value</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sValue</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">str2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenStr</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">s</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenStr</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">s</span><span style="color: Gray;">=</span><span style="color: Blue;">s</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">string</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createCDATASection</span><span style="color: Olive;">(</span><span style="color: Blue;">s</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">obj2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenVname</span><span style="color: #ffa500;">#is necessary</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">object</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cparent</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">lastChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">!=</span><span style="color: Maroon;">0</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NUMBER</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">num2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">BOOLEAN</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">bol2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">STRING</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">str2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJARR</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">arr2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJOBJ</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">obj2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJDATE</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">dat2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJXML</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">xml2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJCC</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">occ2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJM</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ojm2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NULL</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nul2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">UNDEF</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">und2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Teal;">hex</span><span style="color: Olive;">(</span><span style="color: Teal;">ord</span><span style="color: Olive;">(</span><span style="color: Blue;">type</span><span style="color: Olive;">)))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">objend</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#=='\x09'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cparent</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">parentNode</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">arr2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenVname</span><span style="color: #ffa500;">#is necessary</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nArrLength</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;L</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">4</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Long,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">array</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">length</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Teal;">str</span><span style="color: Olive;">(</span><span style="color: Blue;">nArrLength</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cparent</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">lastChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">!=</span><span style="color: Maroon;">0</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NUMBER</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">num2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">BOOLEAN</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">bol2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">STRING</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">str2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJOBJ</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">obj2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJARR</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">arr2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJDATE</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">dat2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJXML</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">xml2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJCC</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">occ2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJM</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ojm2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NULL</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nul2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">UNDEF</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">und2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Teal;">hex</span><span style="color: Olive;">(</span><span style="color: Teal;">ord</span><span style="color: Olive;">(</span><span style="color: Blue;">type</span><span style="color: Olive;">)))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">objend</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#=='\x09'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cparent</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">parentNode</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">dat2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nMsec</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;d</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">8</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Double,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nMinOffset</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;h</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nOffset</span><span style="color: Gray;">=</span><span style="color: Blue;">nMinOffset</span><span style="color: Gray;">/</span><span style="color: Maroon;">60</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createComment</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">DateObject:Milliseconds Count From Dec. 1, 1969; Timezone UTC + Offset.</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">date</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">msec</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Teal;">str</span><span style="color: Olive;">(</span><span style="color: Blue;">nMsec</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utcoffset</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Teal;">str</span><span style="color: Olive;">(</span><span style="color: Gray;">-</span><span style="color: Blue;">nOffset</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">xml2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenCData</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;L</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">4</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Long,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenCData</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: Blue;">sCData</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">xml</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createCDATASection</span><span style="color: Olive;">(</span><span style="color: Blue;">sCData</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">occ2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenVname</span><span style="color: #ffa500;">#is necessary</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenCname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCname</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenCname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCname</span><span style="color: Gray;">=</span><span style="color: Blue;">sCname</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">c_object</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">class_name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sCname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cparent</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">lastChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">!=</span><span style="color: Maroon;">0</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NUMBER</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">num2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">BOOLEAN</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">bol2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">STRING</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">str2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJARR</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">arr2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJOBJ</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">obj2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJDATE</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">dat2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJXML</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">xml2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJCC</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">occ2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJM</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ojm2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NULL</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nul2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">UNDEF</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">und2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Teal;">hex</span><span style="color: Olive;">(</span><span style="color: Teal;">ord</span><span style="color: Olive;">(</span><span style="color: Blue;">type</span><span style="color: Olive;">)))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">objend</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#=='\x09'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cparent</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">parentNode</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ojm2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">m_object</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">nul2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">null</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">und2x</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cparent</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">cparent</span><span style="color: Gray;">.</span><span style="color: Blue;">appendChild</span><span style="color: Olive;">(</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">createElement</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">data</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">undefined</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">d</span><span style="color: Gray;">=</span><span style="color: Blue;">minidom</span><span style="color: Gray;">.</span><span style="color: Blue;">parseString</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&lt;solx/&gt;</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">seek</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenFile</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">tell</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">seek</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sHeader</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenData</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">4</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenData</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;L</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenData</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#Unsigned Long,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">nLenFile</span><span style="color: Gray;">!=</span><span style="color: Blue;">nLenData</span><span style="color: Gray;">+</span><span style="color: Maroon;">6</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Warning: Data Length Mismatch.</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sFileType</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">4</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#=='TCSO'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sth1</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">6</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenSoln</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solname</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenSoln</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solname</span><span style="color: Gray;">=</span><span style="color: Blue;">solname</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sth2</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">4</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solxroot</span><span style="color: Gray;">=</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solxroot</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">std_version</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">0.75</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solxroot</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">std_author</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">iceeLyne</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solxroot</span><span style="color: Gray;">.</span><span style="color: Blue;">setAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">sol_name</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">solname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">cparent</span><span style="color: Gray;">=</span><span style="color: Blue;">solxroot</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">tell</span><span style="color: Olive;">()</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">nLenFile</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">,=</span><span style="color: Blue;">unpack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">2</span><span style="color: Olive;">))</span><span style="color: #ffa500;">#Unsigned Short,Big-endian</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">decode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NUMBER</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">num2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">BOOLEAN</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">bol2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">STRING</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">str2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJOBJ</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">obj2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJARR</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">arr2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJDATE</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">dat2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJXML</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">xml2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJCC</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">occ2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">OBJM</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">ojm2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">NULL</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nul2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: Blue;">UNDEF</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">und2x</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Teal;">hex</span><span style="color: Olive;">(</span><span style="color: Teal;">ord</span><span style="color: Olive;">(</span><span style="color: Blue;">type</span><span style="color: Olive;">)))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">end</span><span style="color: Gray;">=</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#=='\x00'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sxmloutput</span><span style="color: Gray;">=</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">toprettyxml</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\t</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\n</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">==</span><span style="color: #8b0000;">''</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">=</span><span style="color: Blue;">argvInpFile</span><span style="color: Olive;">[</span><span style="color: Gray;">:</span><span style="color: Blue;">argvInpFile</span><span style="color: Gray;">.</span><span style="color: Blue;">rfind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">.</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)]</span><span style="color: Gray;">+</span><span style="color: #8b0000;">'</span><span style="color: Red;">.xml</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">foutput</span><span style="color: Gray;">=</span><span style="color: Teal;">open</span><span style="color: Olive;">(</span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">w</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">foutput</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">sxmloutput</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">foutput</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Converted File: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">+</span><span style="color: #8b0000;">'</span><span style="color: Red;"> Was Successfully Created.</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">except</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Gray;">,</span><span style="color: Blue;">e</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">msg</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">except</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Error.</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">unlink</span><span style="color: Olive;">()</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">argvSw</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">-s</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;"># parse xml to sol</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">d</span><span style="color: Gray;">=</span><span style="color: Blue;">minidom</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Blue;">argvInpFile</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">except</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">IOError</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Could Not Open The Input File: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">argvInpFile</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">except</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Error At Parsing XML File Input.</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2num</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">NUMBER</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">value</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sValue</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">Infinity</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">7F</span><span style="color: Navy;">\x</span><span style="color: Red;">F0</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sValue</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">-Infinity</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">FF</span><span style="color: Navy;">\x</span><span style="color: Red;">F0</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sValue</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">NaN</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">7F</span><span style="color: Navy;">\x</span><span style="color: Red;">F8</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nValue</span><span style="color: Gray;">=</span><span style="color: Teal;">float</span><span style="color: Olive;">(</span><span style="color: Blue;">sValue</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;d</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nValue</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2bol</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">BOOLEAN</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sValue</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">value</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sValue</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">true</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">01</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sValue</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">false</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Boolean Value: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">sValue</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2str</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">STRING</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: #8b0000;">''</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cData</span><span style="color: Gray;"> </span><span style="color: Green;">in</span><span style="color: Gray;"> </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">childNodes</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cData</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeType</span><span style="color: Gray;">==</span><span style="color: Maroon;">4</span><span style="color: Gray;">:</span><span style="color: #ffa500;">#CDATA_SECTION_NODE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: Blue;">cData</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeValue</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">break</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: Blue;">sCData</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenCData</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sCData</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenCData</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenCData</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenCData</span><span style="color: Gray;">+</span><span style="color: Blue;">sCData</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2obj</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">OBJOBJ</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">temp</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeType</span><span style="color: Gray;">==</span><span style="color: Maroon;">1</span><span style="color: Gray;">:</span><span style="color: #ffa500;">#ELEMENT_NODE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">number</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2num</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">boolean</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2bol</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">string</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2str</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2obj</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">array</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2arr</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">date</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2dat</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">xml</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2xml</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">c_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2occ</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">m_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2ojm</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">null</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2nul</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">undefined</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2und</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">type</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nextSibling</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">09</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">temp</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2arr</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">OBJARR</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nArrLength</span><span style="color: Gray;">=</span><span style="color: Teal;">float</span><span style="color: Olive;">(</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">length</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sArrLength</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;L</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nArrLength</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sArrLength</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">temp</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeType</span><span style="color: Gray;">==</span><span style="color: Maroon;">1</span><span style="color: Gray;">:</span><span style="color: #ffa500;">#ELEMENT_NODE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">number</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2num</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">boolean</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2bol</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">string</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2str</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2obj</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">array</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2arr</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">date</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2dat</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">xml</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2xml</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">c_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2occ</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">m_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2ojm</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">null</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2nul</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">undefined</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2und</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">type</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nextSibling</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">09</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">temp</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2dat</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">OBJDATE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nMsec</span><span style="color: Gray;">=</span><span style="color: Teal;">float</span><span style="color: Olive;">(</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">msec</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nMinOffset</span><span style="color: Gray;">=-</span><span style="color: Maroon;">60</span><span style="color: Gray;">*</span><span style="color: Teal;">int</span><span style="color: Olive;">(</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utcoffset</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;dh</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nMsec</span><span style="color: Gray;">,</span><span style="color: Blue;">nMinOffset</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2xml</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">OBJXML</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: #8b0000;">''</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">for</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cData</span><span style="color: Gray;"> </span><span style="color: Green;">in</span><span style="color: Gray;"> </span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">childNodes</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">cData</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeType</span><span style="color: Gray;">==</span><span style="color: Maroon;">4</span><span style="color: Gray;">:</span><span style="color: #ffa500;">#CDATA_SECTION_NODE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: Blue;">cData</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeValue</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">break</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCData</span><span style="color: Gray;">=</span><span style="color: Blue;">sCData</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenCData</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sCData</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenCData</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;L</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenCData</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenCData</span><span style="color: Gray;">+</span><span style="color: Blue;">sCData</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2occ</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">OBJCC</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCname</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">class_name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sCname</span><span style="color: Gray;">=</span><span style="color: Blue;">sCname</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenCname</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sCname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenCname</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenCname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenCname</span><span style="color: Gray;">+</span><span style="color: Blue;">sCname</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">temp</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeType</span><span style="color: Gray;">==</span><span style="color: Maroon;">1</span><span style="color: Gray;">:</span><span style="color: #ffa500;">#ELEMENT_NODE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">number</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2num</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">boolean</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2bol</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">string</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2str</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2obj</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">array</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2arr</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">date</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2dat</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">xml</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2xml</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">c_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2occ</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">m_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2ojm</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">null</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2nul</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">undefined</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2und</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">type</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nextSibling</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">09</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">temp</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2ojm</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">OBJM</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2nul</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">NULL</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">x2und</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">global</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sData</span><span style="color: Gray;">,</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">,</span><span style="color: Blue;">sVname</span><span style="color: Gray;">,</span><span style="color: Blue;">c</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">+</span><span style="color: Blue;">sVname</span><span style="color: Gray;">+</span><span style="color: Blue;">UNDEF</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solxroot</span><span style="color: Gray;">=</span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">solxroot</span><span style="color: Gray;">.</span><span style="color: Blue;">tagName</span><span style="color: Gray;">!=</span><span style="color: #8b0000;">'</span><span style="color: Red;">solx</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Green;">or</span><span style="color: Gray;"> </span><span style="color: Teal;">float</span><span style="color: Olive;">(</span><span style="color: Blue;">solxroot</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">std_version</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">&gt;</span><span style="color: Maroon;">0.75</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Not Solx File Or Incorrect File Version.</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sHeader</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">BF</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenData</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sFileType</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Red;">TCSO</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sth1</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">04</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solname</span><span style="color: Gray;">=</span><span style="color: Blue;">solxroot</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">sol_name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">solname</span><span style="color: Gray;">=</span><span style="color: Blue;">solname</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenSoln</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">solname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenSoln</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenSoln</span><span style="color: Olive;">)</span><span style="color: #ffa500;">#2 bytes</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sth2</span><span style="color: Gray;">=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">=</span><span style="color: Blue;">sFileType</span><span style="color: Gray;">+</span><span style="color: Blue;">sth1</span><span style="color: Gray;">+</span><span style="color: Blue;">sLenSoln</span><span style="color: Gray;">+</span><span style="color: Blue;">solname</span><span style="color: Gray;">+</span><span style="color: Blue;">sth2</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">solxroot</span><span style="color: Gray;">.</span><span style="color: Blue;">firstChild</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">while</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nodeType</span><span style="color: Gray;">==</span><span style="color: Maroon;">1</span><span style="color: Gray;">:</span><span style="color: #ffa500;">#ELEMENT_NODE</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">name</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sVname</span><span style="color: Gray;">=</span><span style="color: Blue;">sVname</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">utf-8</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">nLenVname</span><span style="color: Gray;">=</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenVname</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;H</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Blue;">nLenVname</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">type</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">getAttribute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">number</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2num</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">boolean</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2bol</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">string</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2str</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2obj</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">array</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2arr</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">date</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2dat</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">xml</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2xml</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">c_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2occ</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">m_object</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2ojm</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">null</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2nul</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">elif</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">type</span><span style="color: Gray;">==</span><span style="color: #8b0000;">'</span><span style="color: Red;">undefined</span><span style="color: #8b0000;">'</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">x2und</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">raise</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unexpected Data Type: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">type</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sData</span><span style="color: Gray;">+=</span><span style="color: #8b0000;">'</span><span style="color: Navy;">\x</span><span style="color: Red;">00</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">c</span><span style="color: Gray;">=</span><span style="color: Blue;">c</span><span style="color: Gray;">.</span><span style="color: Blue;">nextSibling</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">==</span><span style="color: #8b0000;">''</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">=</span><span style="color: Blue;">argvInpFile</span><span style="color: Olive;">[</span><span style="color: Gray;">:</span><span style="color: Blue;">argvInpFile</span><span style="color: Gray;">.</span><span style="color: Blue;">rfind</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">.</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)]</span><span style="color: Gray;">+</span><span style="color: #8b0000;">'</span><span style="color: Red;">.sol</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">=</span><span style="color: Teal;">open</span><span style="color: Olive;">(</span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">,</span><span style="color: #8b0000;">'</span><span style="color: Red;">wb</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">sLenData</span><span style="color: Gray;">=</span><span style="color: Blue;">pack</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">&gt;L</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span><span style="color: Teal;">len</span><span style="color: Olive;">(</span><span style="color: Blue;">sData</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">sHeader</span><span style="color: Gray;">+</span><span style="color: Blue;">sLenData</span><span style="color: Gray;">+</span><span style="color: Blue;">sData</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Converted File: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">argvOutFile</span><span style="color: Gray;">+</span><span style="color: #8b0000;">'</span><span style="color: Red;"> Was Successfully Created.</span><span style="color: #8b0000;">'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">except</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">s2xErr</span><span style="color: Gray;">,</span><span style="color: Blue;">e</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">msg</span></li>
<li><span style="color: #ffa500;">##&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; except:</span></li>
<li><span style="color: #ffa500;">##&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print 'Unexpected Error.'</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">d</span><span style="color: Gray;">.</span><span style="color: Blue;">unlink</span><span style="color: Olive;">()</span><span style="color: Gray;">#</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">print</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">Invalid Switch: </span><span style="color: #8b0000;">'</span><span style="color: Gray;">+</span><span style="color: Blue;">argvSw</span></li></ol></div>
<p><strong>リソース</strong><br />
・<a title="http://osflash.org/s2x" href="http://osflash.org/s2x">http://osflash.org/s2x</a>　そこだけs2xに関して資料はまだ残してるようです。。。<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/10/04/pyamf-an-amf-actionscript-message-format-decoder-and-encoder-for-python.html" title="PyAMF: PythonのためにAdobeのFlash Playerに対応しているサポートアクションメッセージ形式（ AMF ）を提供する">PyAMF: PythonのためにAdobeのFlash Playerに対応しているサポートアクションメッセージ形式（ AMF ）を提供する</a></li>
<li><a href="http://digitechlog.com/2011/11/03/python-crawler%ef%bc%9apython%e3%81%ae%e3%82%af%e3%83%ad%e3%83%bc%e3%83%a9%e3%83%bc%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa.html" title="python-crawler：Pythonのクローラーライブラリ">python-crawler：Pythonのクローラーライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/05/12/how-to-use-json-to-exchange-data-in-flex-flash.html" title="JSON(json.as)でFlex／Flashアプリケーションにデータを交換する">JSON(json.as)でFlex／Flashアプリケーションにデータを交換する</a></li>
<li><a href="http://digitechlog.com/2009/04/08/animationpackage-an-actionscript-library-compatible-to-flash-player-6-and-above.html" title="AnimationPackage: Flash Player 6以降サポートされてるActionScriptライブラリ">AnimationPackage: Flash Player 6以降サポートされてるActionScriptライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html" title="JavaでXMLを操作の４種類方法とサンプルソース">JavaでXMLを操作の４種類方法とサンプルソース</a></li>
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html" title="swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール">swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</a></li>
<li><a href="http://digitechlog.com/2009/01/15/how-to-parse-xml-in-jquery-with-sample-source-code.html" title="jQueryを使ってXMLを解析操作する（サンプルソースコード含める）">jQueryを使ってXMLを解析操作する（サンプルソースコード含める）</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/22/s2x-is-a-python-script-that-allows-the-sol-file-format-represented-as-xml.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JavaSWF2: JavaによるFlash解析、生成ライブラリ</title>
		<link>http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html</link>
		<comments>http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 09:48:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[JavaSWF2]]></category>
		<category><![CDATA[SWF]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ライブラリ]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html</guid>
		<description><![CDATA[JavaSWF2とは、 JavaによるFlashを解析、生成するオープンソースライブラリです。おそらく何か頭中にそういうものがあるかというイメージがあるでしょう？そうそう、「はんにん」は、前回紹介した「Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ」です。
JavaSWF2の基本的な機能としては、FlashのSWFファイルからテキストに変換することです。オブジェクトモジュールを使ってテキストとか、JPEG画像などのロード、生成もできます。XMLファイルからSWFへの変換もできます。

上記のような機能は使いやすいと思いますが、残念なのは、JavaSWF2の開発者たち、最後の更新時刻は２００５年です。
以下はXMLからSWFに変換するソースコードです。ほかのサンプルソースは公式サイトに見つかれます。
import java.io.*;
import&#160;java.awt.*;
import&#160;com.anotherbigidea.flash.*;
import&#160;com.anotherbigidea.flash.movie.*;
import&#160;com.anotherbigidea.flash.interfaces.*;
import&#160;com.anotherbigidea.flash.writers.*;
import&#160;com.anotherbigidea.util.xml.Xerces;
&#160;
/**
 * Example of converting an XML file to a SWF file.
 * Key point is the use of the SWFSaxWriter class - this implements
 * the standard SAX2 ContentHandler interface (via its parents) and
 * can be driven directly from any compliant SAX2 XML parser.
 * 
 * SWFSaxWriter drives [...]]]></description>
			<content:encoded><![CDATA[<p>JavaSWF2とは、 JavaによるFlashを解析、生成するオープンソースライブラリです。おそらく何か頭中にそういうものがあるかというイメージがあるでしょう？そうそう、「はんにん」は、前回紹介した「<a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a>」です。</p>
<p>JavaSWF2の基本的な機能としては、FlashのSWFファイルからテキストに変換することです。オブジェクトモジュールを使ってテキストとか、JPEG画像などのロード、生成もできます。XMLファイルからSWFへの変換もできます。</p>
<p><span id="more-313"></span>
<p>上記のような機能は使いやすいと思いますが、残念なのは、JavaSWF2の開発者たち、最後の更新時刻は２００５年です。</p>
<p>以下はXMLからSWFに変換するソースコードです。ほかのサンプルソースは公式サイトに見つかれます。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">awt</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">movie</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">interfaces</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">writers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">Xerces</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;"> * Example of converting an XML file to a SWF file.</span></li>
<li><span style="color: #ffa500;"> * Key point is the use of the SWFSaxWriter class - this implements</span></li>
<li><span style="color: #ffa500;"> * the standard SAX2 ContentHandler interface (via its parents) and</span></li>
<li><span style="color: #ffa500;"> * can be driven directly from any compliant SAX2 XML parser.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * SWFSaxWriter drives an implementation of the SWFTagTypes interface.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * To convert SWF to XML use the main method of the </span></li>
<li><span style="color: #ffa500;"> * com.anotherbigidea.flash.readers.SWFSaxParser class.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * The DTD for the XML is given in javaswf-dtd.txt</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * Uses the Apache Xerces XML parser - download from apache.org.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * Arg[0] = input xml filename</span></li>
<li><span style="color: #ffa500;"> * Arg[1] = output swf filename</span></li>
<li><span style="color: #ffa500;"> */</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Xml2Swf</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">throws</span><span style="color: Gray;"> </span><span style="color: Blue;">Exception</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">FileInputStream</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">in</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FileInputStream</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SWFWriter</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swftags</span><span style="color: Gray;">&nbsp;&nbsp; = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFWriter</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">TagWriter</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">tagwriter</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">TagWriter</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">swftags</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SWFSaxWriter</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">saxout</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFSaxWriter</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">tagwriter</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Xerces</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">saxout</span><span style="color: Gray;">, </span><span style="color: Blue;">in</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>リソース</strong></p>
<p>・<a title="http://sourceforge.net/projects/javaswf/" href="http://sourceforge.net/projects/javaswf/">http://sourceforge.net/projects/javaswf/</a>　公式サイト</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html" title="Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html" title="swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール">swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</a></li>
<li><a href="http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.html" title="FZip: ZIP読込み、作成用AS3のライブラリ">FZip: ZIP読込み、作成用AS3のライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html" title="as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ">as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html" title="Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ">Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/26/flartoolkit-open-source-augmented-reality-in-flash.html" title="FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ">FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/25/wow-engine-free-as3-open-source-physics-engine.html" title="WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ">WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</title>
		<link>http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html</link>
		<comments>http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html#comments</comments>
		<pubDate>Sun, 01 Feb 2009 13:50:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[SWF]]></category>
		<category><![CDATA[swfmill]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ツール]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html</guid>
		<description><![CDATA[swfmillとは、swfファイルを解析してxmlファイルに変換したり、逆にxmlからswfファイルを生成することができるツールである。内部的にMTASC（前回紹介した：MTASC（Motion-Twin ActionScript2 Compiler）: フリーのコマンドラインActionScript(Flash)コンパイラを参照してください）を利用し、FlashのSWFファイルを生成とする。
SWF内に画像やフォントが埋め込まれている場合、それらを取り出してdataとしてXML内に出力することができる。なので、そのXMLを再度SWFにすると、画像も再現されるのだ。これができるのは凄い。とは言え、SWFからXMLを生成し、再度SWFを生成し直したときの再現は完璧ではない。アクションの一部はうまく動作しなくなった。だが、画像のスライドショー等、簡単なSWFであれば十分XMLをベースに生成できそうだ。簡単でと言えば、SWFMILLでできること：
 
・外部画像のシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるようになる。・外部SWFのシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるだけでなく、外部SWF内の子要素MCまでアクセスできる。・外部音声データのシンボル化・MCの生成：AS2を使わなくとも、ライブラリーからシンボルをステージにドロップしてインスタンスを生成するようにステージにMCを生成できる。・キーフレームの生成：タイムラインを生成できる。・フォントの埋め込み・テキストフィールドの生成
swfmillのインストール条件
swfmillはいくつかの依存ライブラリがあるため、必要なライブラリがインストールされていないとインストールできません。それぞれのライブラリがインストールされているかどうかは環境によって異なりますのでそれぞれ対応して下さい。たとえば、libxmlが不足していると別途インストールするひつようです。また、コンパイル及びインストールを行う必要がありますので、root権限とgccコンパイラのあるサーバー環境が必要です。
swfmillのインストール手順
swfmillをダウンロードします。
[root@host src]# wget http://swfmill.org/releases/swfmill-0.2.12.tar.gz
ダウンロードしたファイルを解凍し、解凍したディレクトリに移動します。
[root@host src]# tar xzf swfmill-0.2.12.tar.gz
[root@host&#160;src]# cd swfmill-0.2.12
Flash1.1に対応できるようにパッチをダウンロードして適用します。
[root@host swfmill-0.2.12]# wget http://lab.klab.org/files/flash/encoding.patch
[root@host&#160;swfmill-0.2.12]# patch -p1 &#60; encoding.patch
ビルドしてみます。
[root@host swfmill-0.2.12]# ./configure
…
checking for XML... configure: error: Package requirements (libxml-2.0) were not met:
No package 'libxml-2.0' found
xmlのライブラリが足りないようでしたので必要なライブラリをインストールします。
[root@host swfmill-0.2.12]# yum install libxslt-devel
再度ビルドします。
[root@host swfmill-0.2.12]# ./configure
ビルドが成功したのでインストールします。
[root@host swfmill-0.2.12]# make
[root@host&#160;swfmill-0.2.12]# make install
インストールが成功しました。
使い方：
SWFをXMLに変換する
$ swfmill swf2xml main.swf main.xml
XMLをSWFに変換する
$ swfmill xml2swf main.xml main.swf
画像・音声の入れ替え
元の画像ファイルと変更する画像ファイルを用意する(PHPソースコード)
$search = [...]]]></description>
			<content:encoded><![CDATA[<p>swfmillとは、swfファイルを解析してxmlファイルに変換したり、逆にxmlからswfファイルを生成することができるツールである。内部的にMTASC（前回紹介した：<a href="http://digitechlog.com/2009/01/23/actionscript-2-open-source-free-compiler-mtasc.html">MTASC（Motion-Twin ActionScript2 Compiler）: フリーのコマンドラインActionScript(Flash)コンパイラ</a>を参照してください）を利用し、FlashのSWFファイルを生成とする。</p>
<p>SWF内に画像やフォントが埋め込まれている場合、それらを取り出してdataとしてXML内に出力することができる。なので、そのXMLを再度SWFにすると、画像も再現されるのだ。これができるのは凄い。とは言え、SWFからXMLを生成し、再度SWFを生成し直したときの再現は完璧ではない。アクションの一部はうまく動作しなくなった。だが、画像のスライドショー等、簡単なSWFであれば十分XMLをベースに生成できそうだ。簡単でと言えば、SWFMILLでできること：</p>
<p><span id="more-284"></span> </p>
<p>・外部画像のシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるようになる。<br />・外部SWFのシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるだけでなく、外部SWF内の子要素MCまでアクセスできる。<br />・外部音声データのシンボル化<br />・MCの生成：AS2を使わなくとも、ライブラリーからシンボルをステージにドロップしてインスタンスを生成するようにステージにMCを生成できる。<br />・キーフレームの生成：タイムラインを生成できる。<br />・フォントの埋め込み<br />・テキストフィールドの生成</p>
<p><strong>swfmillのインストール条件</strong></p>
<p>swfmillはいくつかの依存ライブラリがあるため、必要なライブラリがインストールされていないとインストールできません。<br />それぞれのライブラリがインストールされているかどうかは環境によって異なりますのでそれぞれ対応して下さい。<br />たとえば、libxmlが不足していると別途インストールするひつようです。<br />また、コンパイル及びインストールを行う必要がありますので、root権限とgccコンパイラのあるサーバー環境が必要です。
<p><strong>swfmillのインストール手順</strong></p>
<p>swfmillをダウンロードします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">src</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">wget</span><span style="color: Gray;"> </span><span style="color: Blue;">http</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//swfmill.org/releases/swfmill-0.2.12.tar.gz</span></li></ol></div>
<p>ダウンロードしたファイルを解凍し、解凍したディレクトリに移動します。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">src</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">tar</span><span style="color: Gray;"> </span><span style="color: Blue;">xzf</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Gray;">.</span><span style="color: Blue;">tar</span><span style="color: Gray;">.</span><span style="color: Blue;">gz</span></li>
<li><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">src</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">cd</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span></li></ol></div>
<p>Flash1.1に対応できるようにパッチをダウンロードして適用します。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">wget</span><span style="color: Gray;"> </span><span style="color: Blue;">http</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//lab.klab.org/files/flash/encoding.patch</span></li>
<li><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">patch</span><span style="color: Gray;"> -</span><span style="color: Blue;">p1</span><span style="color: Gray;"> &lt; </span><span style="color: Blue;">encoding</span><span style="color: Gray;">.</span><span style="color: Blue;">patch</span></li></ol></div>
<p>ビルドしてみます。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># .</span><span style="color: #8b0000;">/</span><span style="color: Red;">configure</span></li>
<li><span style="color: Red;">…</span></li>
<li><span style="color: Red;">checking for XML... configure: error: Package requirements (libxml-2.0) were not met:</span></li>
<li><span style="color: Red;">No package 'libxml-2.0' found</span></li></ol></div>
<p>xmlのライブラリが足りないようでしたので必要なライブラリをインストールします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">yum</span><span style="color: Gray;"> </span><span style="color: Teal;">install</span><span style="color: Gray;"> </span><span style="color: Blue;">libxslt</span><span style="color: Gray;">-</span><span style="color: Blue;">devel</span></li></ol></div>
<p>再度ビルドします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># .</span><span style="color: #8b0000;">/</span><span style="color: Red;">configure</span></li></ol></div>
<p>ビルドが成功したのでインストールします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">make</span></li>
<li><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">make</span><span style="color: Gray;"> </span><span style="color: Teal;">install</span></li></ol></div>
<p>インストールが成功しました。</p>
<p><strong>使い方：</strong></p>
<p><strong>SWFをXMLに変換する</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$ </span><span style="color: Blue;">swfmill</span><span style="color: Gray;"> </span><span style="color: Blue;">swf2xml</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">swf</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span></li></ol></div>
<p><strong>XMLをSWFに変換する</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$ </span><span style="color: Blue;">swfmill</span><span style="color: Gray;"> </span><span style="color: Blue;">xml2swf</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">swf</span></li></ol></div>
<p><strong>画像・音声の入れ替え</strong></p>
<p>元の画像ファイルと変更する画像ファイルを用意する(PHPソースコード)</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">$search</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #00008b;">$befor_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$replace</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #00008b;">$after_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$xml_str</span><span style="color: Gray;"> = </span><span style="color: Blue;">file_get_contents</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">main.xml</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$xml_str</span><span style="color: Gray;"> = </span><span style="color: Blue;">str_replace</span><span style="color: Olive;">(</span><span style="color: #00008b;">$search</span><span style="color: Gray;">, </span><span style="color: #00008b;">$replace</span><span style="color: Gray;">, </span><span style="color: #00008b;">$xml_str</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p>画像の抽出が上手く行かない場合</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">$search</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">\xFF\xD9\xFF\xD8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">.</span><span style="color: #00008b;">$befor_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$replace</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">\xFF\xD9\xFF\xD8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">.</span><span style="color: #00008b;">$after_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p><strong>テキストフィールドの書き換え</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineEditText</span><span style="color: Gray;"> @ </span><span style="color: Blue;">initialText</span><span style="color: Gray;"> = テキスト</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineEditText</span><span style="color: Gray;">-&gt;</span><span style="color: Teal;">color</span><span style="color: Gray;">-&gt;</span><span style="color: Teal;">Color</span><span style="color: Gray;"> @</span><span style="color: Blue;">red</span><span style="color: Gray;"> @</span><span style="color: Blue;">green</span><span style="color: Gray;"> @</span><span style="color: Blue;">blue</span><span style="color: Gray;"> = 色</span></li></ol></div>
<p>を書き換える</p>
<p><strong>アクションスクリプトを書き換える</strong></p>
<p>変数</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DoAction</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">actions</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">PushData</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">items</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">StackString</span><span style="color: Gray;"> @ </span><span style="color: Blue;">value</span><span style="color: Gray;"> = 変数名</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DoAction</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">actions</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">PushData</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">items</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">StackString</span><span style="color: Gray;"> @ </span><span style="color: Blue;">value</span><span style="color: Gray;"> = 値</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DoAction</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">actions</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">SetVariables</span></li></ol></div>
<p><strong>パスの色やムービークリップ等をそのままごっそり入れ替える</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineShape2</span><span style="color: Gray;"> -&gt; グラフィックシンボル</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineSprite</span><span style="color: Gray;"> -&gt; </span><span style="color: Teal;">MovieClip</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">インスタンス化されている</span><span style="color: Olive;">)</span></li></ol></div>
<p><strong>リソース：<br /></strong>・<a title="http://swfmill.org/" href="http://swfmill.org/">http://swfmill.org/</a>&nbsp; ホームページ<br />・<a title="http://blogs.yahoo.co.jp/k3_labs/3077231.html" href="http://blogs.yahoo.co.jp/k3_labs/3077231.html">http://blogs.yahoo.co.jp/k3_labs/3077231.html</a>&nbsp; FlashDevelopからSWFMILLを巧く使うチュートリアル<br />・<a title="http://packages.ubuntu.com/ja/source/intrepid/swfmill" href="http://packages.ubuntu.com/ja/source/intrepid/swfmill">http://packages.ubuntu.com/ja/source/intrepid/swfmill</a>&nbsp; swfmill 関連パッケージ</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/10/15/alcon-a-lightweight-debugging-tool-for-actionscript-developers.html" title="Alcon: オープンソースのActionScript向けの軽量デバッギングツール">Alcon: オープンソースのActionScript向けの軽量デバッギングツール</a></li>
<li><a href="http://digitechlog.com/2009/06/22/silex-an-open-source-cms-ria-software-build-flash-websites.html" title="SILEX: WYSIWYGでFlashサイトを構築できるオープンソースのRIA開発ツール">SILEX: WYSIWYGでFlashサイトを構築できるオープンソースのRIA開発ツール</a></li>
<li><a href="http://digitechlog.com/2009/02/17/swf-tools-a-collection-of-swf-manipulation-and-creation.html" title="SWF Tools: PNG/JPEG/GIF/PDF/WAV/FONTからSWFに変換する便利なコマンド集">SWF Tools: PNG/JPEG/GIF/PDF/WAV/FONTからSWFに変換する便利なコマンド集</a></li>
<li><a href="http://digitechlog.com/2009/02/16/jswiff-an-open-source-pure-java-framework-for-adobe-flash-file-creation-and-manipulation.html" title="JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク">JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html" title="Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a></li>
<li><a href="http://digitechlog.com/2008/12/07/the-list-of-easy-to-be-used-actionscript-debug-tools-open-source-flash.html" title="使いやすいオープンソースのActionScriptデバッグツールリスト">使いやすいオープンソースのActionScriptデバッグツールリスト</a></li>
<li><a href="http://digitechlog.com/2011/11/08/php-screw.html" title="オープンソースソフトウェアPHP ScrewでPHPスクリプトを暗号化する">オープンソースソフトウェアPHP ScrewでPHPスクリプトを暗号化する</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

