svnno****@sourc*****
svnno****@sourc*****
2010年 7月 18日 (日) 00:39:12 JST
Revision: 1956
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1956
Author: dhrname
Date: 2010-07-18 00:39:12 +0900 (Sun, 18 Jul 2010)
Log Message:
-----------
実体参照に関して、GetSVGDocumentオブジェクトの修正
Modified Paths:
--------------
branches/06x/061/org/w3c/dom/svg.js
Modified: branches/06x/061/org/w3c/dom/svg.js
===================================================================
--- branches/06x/061/org/w3c/dom/svg.js 2010-07-16 13:04:28 UTC (rev 1955)
+++ branches/06x/061/org/w3c/dom/svg.js 2010-07-17 15:39:12 UTC (rev 1956)
@@ -176,7 +176,7 @@
} else {
if (degli === 3) {
var degz = _parseFloat(deg[0]);
- s.setRotate(degz, _parseFloat(deg[1]), _parseFloat(degi[2]))
+ s.setRotate(degz, _parseFloat(deg[1]), _parseFloat(deg[2]))
} else if (degli <= 2) {
var degz = _parseFloat(deg[0]);
if (com === "translate") {
@@ -1333,8 +1333,31 @@
*ここでは、responseTextを用いる
*/
var dew = new Date();
- str = xmlhttp.responseText.replace(/!DOCTYPE/,"!--").replace(/(dtd">|\]>)/,"-->");
+ str = xmlhttp.responseText;
+ NAIBU.doc.async = false;
+ /*下記のプロパティについては、Microsoftのサイトを参照
+ *ResolveExternals Property [Second-level DOM]
+ * http://msdn.microsoft.com/en-us/library/ms761375%28VS.85%29.aspx
+ *ValidateOnParse Property [Second-level DOM]
+ * http://msdn.microsoft.com/en-us/library/ms760286%28VS.85%29.asp
+ */
+ NAIBU.doc.validateOnParse = false;
+ NAIBU.doc.resolveExternals = false;
NAIBU.doc.loadXML(str);
+ if (/&[a-z];/.test(str)) {
+ /*以下の処理は、実体参照を使ったとき
+ *代替の処理を用いて、実体参照を処理するもの
+ */
+ var tmp = str;
+ var enti = (NAIBU.doc.doctype)? NAIBU.doc.doctype.entities: { length:0 };
+ for (var i=0; i<enti.length; i++) {
+ var map = enti.item(i);
+ var regex = new RegExp("&"+map.nodeName+";", "g");
+ tmp = tmp.replace(regex, map.firstChild.nodeValue);
+ }
+ NAIBU.doc.loadXML(tmp);
+ tmp = null;
+ }
var s = DOMImplementation.createDocument("http://www.w3.org/2000/svg", "svg");
var tar = s.documentElement;
tar.viewport.top = 0;