2006年05月23日

WSHでMSXMLのSAXが使えない件

いや、タイトルのマンマの内容なんだけど。かなり悩んだのでメモ。

XMLを処理するプログラムを書く必要が出来た。Perlで書こうかとも思ったが、家のPCだけでなく、専門学校でも使える必要があったので、とりあえず、まず間違いなく現在動作しているWindows環境なら何処でも動くであろうWSHMSXMLをチョイス。

さて、XMLの処理方法は主に2種類、DOMSAXが有るが、今回は処理内容からSAXを選択。さて、どうやって使うのかな……と。検索、検索……

……………………………………………………………………………………
………………………………………………………………
…………………………………………
……………………(; ^ω^)ア、アレ……?
DOMのコードしか見つからない……?

どうにかこうにかMSXML2.SAXXMLReaderがパーサらしいということは分かった。


Class Handler

End Class

Dim parser
Set parser = CreateObject("MSXML.SAXXMLReader")
parser.contentHandler = New Handler '各ハンドラを実装したクラスオブジェクト
parser.parseURL("hoge.xml") ' パースするファイルのURL

……と言った感じのコードになるんだろう。多分。

早速適当にHandler実装して実行してみる。


C:\Documents and Settings\hoge\デスクトップ>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

C:\Documents and Settings\hoge\デスクトップ\test.vbs(6, 1) Microsoft VBScript 実
行時エラー: 型が一致しません。: 'contentHandler'

……………………あれ?
さらに良く調べてみると、サンプルプログラムJumpStart for Creating a SAX2 Applicationを発見。VB(VBSに非ず)とC++版が有った。それぞれのプログラムを見てみると、どうやらcontentHandlerにはIVBSAXContentHandler(VB)或いはISAXContentHandler(C++)を継承したクラスオブジェクトを指定するらしい。

……………………って、継承!!?
WSHの言語(VBScript、JScript)って継承出来ないだろ!!?

さらにさらに調べてみると、ちょろちょろと発見。

here are some results from a Google search: http://tinyurl.com/drls So, most of these people are saying it can't be used in vbscript.

カンで翻訳すると、どうやら

このGoogleの検索結果ば見てみー。:

http://tinyurl.com/drls

みんなVBScriptじゃぁそれは出来んって言いよるバイ。

てな感じの事を言っている模様。

うーん、出来ないのか……
どうしよう、DOM使うか……?いっそ徒のテキストとして処理すると言う手も有るか……

posted by 天井冴太 at 23:04 | Comment(1) | TrackBack(0) | Question | このブログの読者になる | 更新情報をチェックする
投票お願いします 人気blogランキング - 投票する
この記事へのコメント
大変ですよねー;w;私もちょっと微妙?かも?
あんまり関係なくてごめんなさいね><;
Posted by 裏ワザコスメ☆ at 2006年05月29日 06:45
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

コメント欄右下をドラッグ&ドロップすると、コメント欄の拡大縮小が出来ます。
認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。