XMLファイルに関するエラーメッセージの解決方法

このQ&Aのポイント
  • 質問者は、海外のXMLファイルをダウンロードし、そのバージョンが異なるためにアクションスクリプトエラーが発生していると報告しています。
  • 具体的には、警告メッセージ「行3:大文字小文字を区別しない識別子 'xml' はビルトインオブジェクトの 'XML' と同等とみなされます。」が表示されています。
  • どこが違っているのかを調査し、解決策を提案するようにお願いされています。
回答を見る
  • ベストアンサー

XMLに関して、エラーメッセージがでます

海外のファイルをダウンロードしました。 海外のファイルのバージョンはMXです。当方はフラッシュ8です。 アクションスクリプトエラーをチェックしましたら以下のエラーメッセージが出ます。 どこが違ってるのでしょうか? var spacing = 5; var feedSpacing = 100; xml = new XML(); xml.ignoreWhite = true; xml.onLoad = mx.utils.Delegate.create(this, processFeed); mcFeedItem._visible = false; tfFeedback._visible = false; loadFeed(_root.rss); **警告** 行 3:大文字小文字を区別しない識別子 'xml' はビルトインオブジェクトの 'XML' と同等とみなされます。 xml = new XML(); 宜しくお願いします。

  • nkmyr
  • お礼率67% (403/600)
  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

エラーメッセージ「そのままのこと」だと思いますよ。 XML はクラス名です。 クラス名と変数名がかぶったら「マズイことになる可能性が多いですよ。」 ということです。 Flash Player 6 用 SWF では大文字小文字が区別されません。 たとえば gotoAndPlay(5); と書くべきところを GOTOANDPLAY(5); と書いても, gotoandplay(5); と書いても, 「フレーム5 に行って再生」 が実行されます。 Flash Player 7 用 SWF では大文字小文字が区別されます。 たとえば gotoAndPlay(5); と書くべきところを GOTOANDPLAY(5); と書いても, gotoandplay(5); と書いても, 「フレーム5 に行って再生」 は実行されません。 gotoAndPlay(5) は gotoAndPlay(5) でないと 「フレーム5 に行って再生」 は実行されないということです。 したがって, Flash Player 8 以降用の SWF をパブリッシュする場合, xml = new XML(); の xml は 小文字であるので XML とは別物であると解釈されますから,「命取り」にはなりません。 「命取り」にはならないだけで,通常そのような変数名(オブジェクト名)は「付けない」というのが常識ですから, my_xml = new XML(); や myXML = new XML(); や theXML = new XML(); などのようにわざと XML とはズラすのが普通です。 それはともかく, Flash Player 8 以降用の SWF をパブリッシュする場合, xml = new XML(); でも,一応「ギリギリセーフ」なわけです。 しかし, Flash Player 6 用の SWF をパブリッシュする場合は,大文字小文字が区別されないわけですから, xml = new XML(); は, XML = new XML(); などとして実行される可能性がありますよということです。 ちなみに Flash MX で書かれていらっしゃるスクリプトを書いてパブリッシュしてみました。 Flash 8 の警告と全く同じで,下記のようなエラーが表示されました。 ---------------------------------------------- **警告** シーン = シーン 1, レイヤー = レイヤー 1, フレーム = 1 : 行 3:大文字小文字を区別しない識別子 'xml' はビルトインオブジェクトの 'XML' と同等とみなされます。 xml = new XML(); ---------------------------------------------- 警告は出ますが, そんな細かいことは無視したということではないかと思います。 (つまり元のスクリプトを書かれた方が 好い加減 だということです。)

nkmyr
質問者

お礼

XML = new XML(); で解決できました。 フラッシュってバージョンがアップするたびにややこしくなってしまいますね。 どうもありがとうございました。

関連するQ&A

  • XMLファイルの読み込みとデータの引き出し

    すみません。 徹夜しても答えがわからないのですが、 XMLからSWFの読み込みなのですが 下記スクリプトの間違いは何でしょうか? FLASH8.0 AS2 で作成してます。 //XMLファイルのXMLオブジェクトへの格納 myobjXML = new XML(); myobjXML.ignoreWhite = true; //XMLファイルの読み込み myobjXML.load("article.xml"); //XMLの情報格納 var imgNum = _root.myobjXML.childNodes[0].childNodes[0].nodeValue; if (imgNum == 1) { _root.nextbtn_mc._visible = false; _root.nextbtnlarge_mc._visible = false; } //写真数表示 this.imgnumtxt.text = imgNum; this.imgnumtxt2.text = imgNum;

  • XMLのparseエラーについて

    JavaのURLでWASにあるXMLファイルにアクセスし、その内容をcom.sun.xml.tree.XmlDocumentクラスのインすタンスを生成したいと思っています。 ソース抜粋 PrintWriter out = new PrintWriter(new OutputStreamWriter(con.getOutputStream(), "UTF-8")); out.print(xmlDoc.writeString()); out.flush(); out.close(); con.connect(); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); String inputLine = null; while ((inputLine = in.readLine()) != null) { answer.append(inputLine); } new XmlDocument(is, false); 上記のnew XmlDocument(is, false);を実行したら、例外で落ちてしまいます。 エラー内容は、org.xml.sax.SAXParseException: com.sun.xml.parser/P-019 XMLの書式が悪いと思いためしに、 new XmlDocument(is, false);を実行する前に、XMLファイルを作成し、ブラウザで表示したところ正常でした。 原因がわかりません、皆さんよろしくお願いします。

  • JavaScriptによるXML読み込み

    ASP.Netである操作をした際、JavaScriptのリソースファイル(JSファイル)のXML読み込み関数を呼び、XMLデータを取得しようとしていますがうまくいく場合といかない場合があり困っています。 XMLのloadでエラーとなっているようなのですがその原因と対処法がわかりません。 どうか詳しい方がいましたら教えて下さい。 ちなみにソースは以下の通りです。 ---------------------------------------------------- var objXML = new ActiveXObject('microsoft.XMLDOM'); objXML.async = false; objXML.load('../../../XMLFile/XMLファイル名'); ---------------------------------------------------- parseError情報ではエラーコードが"-2146697210"です。 load関数でうまくいったりいかなかったりです。 ちなみにXMLファイルは上記のように相対パス指定で行ってます。 以上、お願いします。

  • 空のXMLを判別する

    <?xml version="1.0" encoding="utf-8" ?> <set> <error></error> <data>2500</data> </set> 上記のようなXMLファイルを.loadを使用して読み込みます。 errorが無い場合に~という処理をしたいのですが どのように「空」の状態を判断すればいいのかが分かりません。 this.firstChild.childNodes[0]でfalse等などの条件を入れてみたのですがうまくいきませんでした。 errorがあると <error>指定のアルバムは存在しません</error> というような感じで文字列が入り、その文字をダイナミックテキストdispで表示、処理を停止します。 環境はMXです。 宜しくお願いします。

    • ベストアンサー
    • Flash
  • 【flashlite2.0でxmlを読み込み、ダイナミックテキストに表

    【flashlite2.0でxmlを読み込み、ダイナミックテキストに表示させたい。】 こんにちは。お世話になります。 flashlite2.0でxmlを読み込み、ダイナミックテキストで表示をさせたいのですが、 よくわからず困っております。 パブリッシュする時、ActionScript2.0ではうまくいくのですが、Flashlite2.0でパブリッシュしてもxmlが表示されません。以下のソースなのですが、flashlite2.0用としてはどこが違うのでしょうか?様々検索いたしましたが、わからず相談させていただきました。 何かヒントなどいただけたらありがたいです。よろしくお願いします。 var xml:XML = new XML(); xml.ignoreWhite = true; xml.onLoad = XMLLoader; function XMLLoader(){ myText.text = xml; } xml.load("word_m.xml");

    • ベストアンサー
    • Flash
  • javascriptでXML IEとfireFox

    作成中のホームページで、条件を入力させてその条件に合ったデータ(XMLで管理)を表示する という内容のモノを作ろうとしています。 実際に一通り動く所までは出来たのですが、IEでしか動作せず Firefox等の他ブラウザだと動作しません。 調べてみると、ActiveXObjectが使えないようなのですが どういう方法で実装すると動作するようになるのでしょうか。 よろしくお願いします。 ----------以下ソース一部---------- // ワーク用の XML ドキュメントオブジェクト var objDocWk = new ActiveXObject("Msxml2.DOMDocument.3.0") // 出力用の新しいルートノードを作成 dstNd = objDocWk.createNode(1, "list", "") // XML ドキュメントオブジェクト生成 var objDoc = new ActiveXObject("Msxml2.DOMDocument.3.0") objDoc.async = false objDoc.load("msch.xml") var objRootNode = objDoc.documentElement.childNodes =======================補足======================= 下記のようにやってみたのですが、jsのエラーが起り原因がわからないです。※fireFoxのみIEでは動作確認済 if (window.ActiveXObject) { //for IE // XML ドキュメントオブジェクト生成 var objDoc = new ActiveXObject("Msxml2.DOMDocument.3.0") objDoc.async = false // 曲情報の読込み objDoc.load("msch/msch.xml") // ワーク用の XML ドキュメントオブジェクト var objDocWk = new ActiveXObject("Msxml2.DOMDocument.3.0") } else { //for Firefox // XML ドキュメントオブジェクト生成 var xhttp = new XMLHttpRequest(); xhttp.open("GET", "msch/msch.xml", false); xhttp.send(null); var objDoc = xhttp.responseText; window.alert(objDoc); // ワーク用の XML ドキュメントオブジェクト var xhttp2 = new XMLHttpRequest(); xhttp2.open("GET", "msch/msch.xml", false); xhttp2.send(null); var objDocWk = xhttp2.responseText; window.alert(objDocWk); } // 出力用の新しいルートノードを作成 dstNd = objDocWk.createNode(1, "musiclist", "") // 曲情報のルートノードを取得 var objRootNode = objDoc.documentElement.childNodes エラー内容が objDocWk.createNode is not a function  と objDoc.documentElement is undefined   です。

  • flashでPHPファイル(実際は該当するxmlを呼ぶ)を読み込む方法について

    FLASH(AS2.0)でPHPファイル(実際は該当するxmlを呼ぶ)を読み込むようにするにはどのようにしたらいいのですか? 現状では、ローカルのxmlファイルを読み込むように、 下記のように書いてあります。 var objXML:XML = new XML(); objXML.ignoreWhite = true; objXML.onLoad = function(success:Boolean):Void { if(success) { loadXML(this); } } var menuArray:Array = new Array(); // function loadXML(objXML:XML):Void { var dataNode:XMLNode = objXML.firstChild; var menuNodes:Array = dataNode.childNodes; for(var i:Number = 1; i <= menuNodes.length; i++) { var menuNode:XMLNode = menuNodes[i-1].childNodes; var Name:String = menuNode[0].firstChild.nodeValue; menuArray[i] = { title:Name}; } myVars(menuArray); } objXML.load("sample.xml"); この状態から、外部<http://aaaa/sample.php>URLに アクセスして、PHPファイルを読み込むにはどのようにしたら よいのか全くわかりません。 objXML.load("sample.xml"); 上記の()の中に直接URLを挿入すると、 ローカルでは確認できるのですが、 ファイルをアップすると、まったく読み込めてはいません。 ActionScriptは全くわからないので、ご教授よろしくお願いいたします。

  • XML DOMについて

    JavaScriptでDOMを使用して、xmlhttp.sendで指定のPHPファイルに送信しましたが、 PHP側で値を取得できません。 (PHP Ver.5.3.0) 以下、JavaScript var UserID="abc"; var Password="abc"; var xmlDoc = new ActiveXObject("Microsoft.XMLDom"); xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml","version=\"1.0\"")); var root = xmlDoc.createElement("xDoc"); xmlDoc.documentElement=root; var node_Item = xmlDoc.createElement("Command"); root.appendChild(node_Item); var node_UserID = xmlDoc.createElement("UserID"); node_UserID.appendChild(xmlDoc.createTextNode(UserID)), node_Item.appendChild(node_UserID); var node_Password = xmlDoc.createElement("Password"); node_Password.appendChild(xmlDoc.createTextNode(MDString(Password))), node_Item.appendChild(node_Password); var node_Sufix = xmlDoc.createElement("Sufix"); node_Sufix.appendChild(xmlDoc.createTextNode(Sufix)), node_Item.appendChild(node_Sufix); var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("post",topURL("main/Log.php"),false); xmlhttp.send(xmlDoc); 以下、Log.php <?php session_start(); $DEBUG_MODE=false; $xmlLogQ=$_SERVER['DOCUMENT_ROOT']."/test/temp/Request.xml"; $xml = new DOMDocument(); $xml->async=false; if (!$DEBUG_MODE) { if ($XML_LOG) { $xml->save($xmlLogQ); } } else { if ($XML_LOG) { $xml->load($xmlLogQ); } } $doc=$xml->documentElement; if ($xml->parseError.errorCode==0) { $xml = $node=$doc->selectSingleNode("Command/UserID"); if (!($node==null)) { $UserID=$node->text; $node=null; } $node=$doc->selectSingleNode("Command/Sufix"); if (!($node==null)) { $Sufix=$node->text; $node=null; } $node=$doc->selectSingleNode("Command/Password"); if (!($node==null)) { $Password=$node->text; $node=null; } } ?> 保存したXML上、<?xml version="1.0"?>以降書き込みできてません。 どの部分がおかしいか不明の為、申し訳ないですがご教授お願いします。

    • ベストアンサー
    • PHP
  • 【validation.xml】長さの入力チェック

    いつもお世話になっております。 validation.xmlを使用しての長さ入力チェックについてご教授ください。 validation.xmlで、下記の指定をした場合、文字列の長さが100でチェックがかかりますが(半角でも全角でも)、 文字数ではなくバイトでチェックをかける方法はどのように記述すればよろしいでしょうか? <form name="TestForm">  <field property="freearea" depends="maxlength">   <arg0 key="フリーエリア" resource="false"/>   <arg1 key="${var:maxlength}" resource="false"/>   <var>    <var-name>maxlength</var-name>    <var-value>100</var-value>   </var>  </field> </form>

  • 複数のxmlを同ページに読み込みたい

    同じ項目をもつxmlをカテゴリ別に複数作成された状態で、同一html上にjqueryで読み込みたいです。 var xmlFiles=new Array("a.xml","b.xml","c.xml"); $(document).ready(function(){ for(var i=0;i<xmlFiles.length;i++){ $.ajax({url: '',type: 'GET', dataType: 'xml',timeout: 100000,error: function(){alert('xmlファイルの読み込みに失敗しました');}, success: function(xml){ 処理 } }); } }); これだとおかしくなってしまいます。 $.ajax~~を読み込み名を変えて繰り返し記述してもうまくいかないのですが、これは1つのxmlにするしかないのでしょうか。