ASP VBScript にて、URLからxmlを読み込むと失敗します。

原因が分かる方いましたらよろしくお願いします。


例;)
こちらだとうまくいく
xmlurl = Server.MapPath("/new.xml")
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = false
rc = objXML.load(xmlurl)
REsponse.Write(rc)
Response.End

こちらだと失敗(もちろんhttp://localhost/new.xmlはアクセスできる)
xmlurl = "http://localhost/new.xml"
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = false
rc = objXML.load(xmlurl)
REsponse.Write(rc)
Response.End

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/09/13 01:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:icchan0000 No.1

回答回数85ベストアンサー獲得回数5

ポイント35pt

objXML.loadメソッドは、ローカルディスク内にあるxmlを読み出すメソッドです。

たとえlocalhostであってもhttp経由だと「ローカルディスク内」とはみなされずエラーになっているのではないでしょうか。

特に必要がなければ、うまくいくほうの記述でやっておけば良いのではないですか?

どうしてもhttp経由でアクセスしたい場合は、

http://okwave.jp/kotaeru.php3?q=1821259

あたりがご参考になるかと思います。

id:llusall No.2

回答回数505ベストアンサー獲得回数61

ポイント35pt

下記のようにステップを追加したところ、

要求されたリソースのデータは使用できません。

とのエラー内容でした。

サーバーサイドでは、

Server.CreateObject("Microsoft.XMLDOM")

だとURL参照できない見たいですね。

rc = objXML.load(xmlurl)

If rc = False Then

    Set objErr = objXML.parseError

    Response.Write("■エラー内容:" & objErr.reason)

End If

>回答者1

>objXML.loadメソッドは、ローカルディスク内にあるxmlを読み出すメソッドです。

とのことですが、クライアントサイドからなら、URL参照で問題なく使用できます。

(私は実際使ってますw)




代替案をご紹介します


サーバサイドでXMLをDOMするならば、

「ServerXMLHTTP」 をお勧めします。

他のサイトのコンテンツを ASP 内で取得する

 5.MSXML2 を使用 ←ここを参照してください。

http://lightly.plala.jp/memo/win/asp/wget.html


※なお、「MSXML(XMLHTTP)」 は、クライアント アプリケーション用に設計されているので推奨されていません。

http://support.microsoft.com/kb/290761/ja

  • id:icchan0000
    >>回答者1
    >>objXML.loadメソッドは、ローカルディスク内にあるxmlを読み出すメソッドです。

    >とのことですが、クライアントサイドからなら、URL参照で問題なく使用できます。
    >(私は実際使ってますw)


    ありゃそうでしたか(^^;
    シツレイいたしました。ご訂正ありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません