- PR -

ASPでのDOMの使用について

1
投稿者投稿内容
てん
常連さん
会議室デビュー日: 2004/11/18
投稿数: 24
投稿日時: 2005-07-22 03:11
てんです。
いつもお世話になっております。

.NETではないのですが、ASPに関する書き込み場所が
分からなかったのでこちらに投稿させて頂きます。
間違っていたら申し訳ありません。

ASPでDOMを使用してXMLの読み込みを行おうとしているのですが、
失敗してしまいます。
同じ内容のvbscriptをtest.vbsというファイルで保存して実行した場合
読み込みは成功しています。
vbscript部分は以下のとおりです。

Dim objDOM, rtResult
Set objDOM = WScript.CreateObject("MSXML2.DOMDocument")
rtResult = objDOM.load("sample.xml")

vbsを実行した場合は rtResult には Trueが返ってきており、
aspで実行した場合には rtResult には 何も返ってきていません。
(読み込みできていない)

環境は
Windows XP SP1
MSXML4.0 SP2
Windows Script Host 5.5
IIS 5.1
IE 6.0
IISの設定は匿名アクセス不可としています。

MSXMLのDOMについてはHP上にもいろいろと情報があり、
調べてはみたのですが、解決できませんでした。
何か設定で必要なことやコード上の問題があれば
どなたかご教授願えませんでしょうか。
他に必要な情報があればそちらについてもご連絡ください。
よろしくお願いします。
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-07-22 09:20
※サーバ側にDOMのバージョンを書かれているので、サーバサイドの処理と仮定します。

ぱっと見引っかかるのは、CreateObjectですかね。
確かサーバサイドでは"Server.CreateObject"と記述すべきだったと記憶しています。

エラーは出てないんですかね?
On Error Resume Nextを指定しているなら一旦外して確認するか、Err.NumberとErr.Descriptionを確認してみることをお勧めします。

[修正]
先頭の注釈追加

[ メッセージ編集済み 編集者: でっち6号 編集日時 2005-07-22 09:30 ]
てん
常連さん
会議室デビュー日: 2004/11/18
投稿数: 24
投稿日時: 2005-07-22 09:42
でっち6号 様
返信ありがとうございます。
今後はサーバ側で実行する予定ですが、
現在はlocalhostでテストを行っています。

ご指摘の通り、On Error Resume Nextとしておりましたので、
これをはずして、実行したところ、Wscriptは宣言されていませんとのエラーが発生し、
でっち6号様のご指摘どおり
Server.CreateObjectに修正したところ、Falseが返ってきました。
(とりあえず進歩)
結果としてはまだ読み込み成功できていませんので
Server.CreateObject で再度調査してみたいと思います。

また何か情報あれば引き続きよろしくお願いします。

下記は修正したaspのコードです。
(html部分は一部抜粋)

<%@ LANGUAGE=VBScript %>
<%
Option Explicit

Dim objDOM, rtResult
Dim Message
Dim ErrMessage

Set objDOM = Server.CreateObject("MSXML2.DOMDocument")
rtResult = objDOM.load("sample.xml")
If rtResult = True Then
ErrMessage = "読み込みできました。"
Else
ErrMessage = rtResult
End If
Set objDOM = Nothing
%>
<!-- #include file="header.inc" -->
<BR>
結果は<%=ErrMessage%>です。
</form>
</body>
</html>
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-07-22 09:43
引用:

Windows Script Host 5.5
IIS 5.1



ASP の中で WScript なんか使っちゃダメです。
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-07-22 09:53
てんさん

前進してなによりです。
読み込めないのはパスの指定が原因だと思います。
objDOM.load(Server.MapPath("sample.xml"))
とServer.MapPathでファイルパスを囲んでみてください。
てん
常連さん
会議室デビュー日: 2004/11/18
投稿数: 24
投稿日時: 2005-07-22 10:12
渋木 様 でっち6号 様
お返事ありがとうゴザイマス。

で、で、できました〜☆^v(*^∇')乂('∇^*)v^☆
Server.MapPathを使用して成功しました!
ありがとうございました。

Wscriptについてもまだきちんと理解しないまま
使っていましたので、今後勉強していきたいと思います。
お二方本当にありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)