QA@IT

【asp】 xmlが動的に生成されている場合の読み込み方

3278 PV

見よう見まねですがaspでxmlファイルを用意してxlsスタイルを適用し項目を読み込んでいます。
xmlをテスト的に実際にファイルを用意した場合は正常に動くのですが、
動的に生成されているxmlを読み込もうとするとエラーが出てしまいます

msxml6.dll エラー '8000000a'
この操作を完了するのに必要なデータは、まだ利用できません。

直接URLを読み込ませるためにはどのようにしたらよろしいでしょうか?
(jqueryで読み込ませる方法では読めました)

よろしくお願い致します。

xml = Server.MapPath("xml1.xml")
'xml = "http://xxxx.jp/xxxx/index.xml"←実際はこちらのxmlを読み込みたい
xsl = Server.MapPath("xsl1.xsl")

Set ObjXML = Server.CreateObject("Msxml2.DomDocument.6.0")
Set ObjXLS = Server.CreateObject("Msxml2.DomDocument.6.0")

ObjXML.Load(xml)
ObjXLS.Load(xsl)

Response.Write(ObjXML.transformNode(objXLS))

回答

Msxml2は標準で非同期で処理されるためだと思います。
非同期通信の終了を待たずに同期処理でやりたいのであれば、以下の様にCreateObjectの後で2行を追加してみてはどうでしょう。

Set ObjXML = Server.CreateObject("Msxml2.DomDocument.6.0")
ObjXML.async = False
ObjXML.setProperty "ServerHTTPRequest", True

https://support.microsoft.com/ja-jp/kb/281142

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。