- PR -

SGMLデータのパース処理の方法

1
投稿者投稿内容
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-01-22 17:50
お世話様です。。
掲題の件につきまして、識者の方々のご意見を伺いたいと思います。
SGMLデータの内容を解析してタグの中の属性?や、値を取り出したいと思っています。

これを行うには、どのようにするのが一番良いと思いますか?
私(未熟者)の調べた感じだとSAX、DOM、スタイルシート、stringベースで自力で解析。
という方法があると思うのですが、どうでしょうか。
正直、SGMLがXMLの親みたいなものだということしかわかっていません。

どなたかお知恵をお貸しください。
コード:
<AAA BBB><CC DD=0004 EE=005 FF=013>あいうえお

<IMG ID=000001 GG=055><CC DD=0004 EE=005 FF=013>かきくけこ
<IMG ID=000002 GG=055><CC DD=0004 EE=005 FF=013>さしすせそ
<IMG ID=000003 GG=055><CC DD=0004 EE=005 FF=013>たちつてと
<IMG ID=000004 GG=055><CC DD=0004 EE=005 FF=013></AAA>


こんな感じのデータから
ID=000001、000002や
あいうえお、かきくけこ等を取得したいと思っています。


[ メッセージ編集済み 編集者: JBOY 編集日時 2004-01-22 18:12 ]
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-01-23 09:55
SGMLのパーサを使わずに、XMLに変換してしまう場合

まともな方法
SGMLのパーサーを引っ張り出して、SGML→XML変換(SGMLの正規化とかいう用語かも)
してから処理する。記憶では、ジェームス・クラーク(XML界のヘビー級選手)の SP1.3(NSGMLS)
にはオプションが入っていた。日本語処理では環境変数設定とかの説明ページはもう消えたかも。
EUCコードのASCII処理で強行突破できるか?
------------------- 追加2 --- 日本語ページ少しありました
ノーマライザーSGMLNORM
http://www.jagat.or.jp/sgml/sgml/sgmlnorm.htm

XMLの2重人格(テキストあるいは Infoset)のテキスト面を利用する方法
テキストエディタで
イコールと空白で挟まれた文字列を”でくくる。
=[^ ]+ → "\0" 全置換
空要素タグに/を付ける
<IMG [^>]+ →\0/
省略タグを補充する
<CC [^<]+ → \0</CC>
xml宣言はエディタで手で打ち込む。

金持ちA様の方法
古くからSGMLを扱っているソフトメーカのxml変換ツールを買う。
GUIも付いているので楽です。

大富豪の方法
技術を持っている会社を買収する。

------------------------- 追加
XML ツール最新情報
June 2003 日本語版最終更新日 2003 年 9 月 17 日
http://www.microsoft.com/japan/msdn/xml/xmlnet/XMLToolsUpdate.asp
に dotNET の
SgmlReader が載っていました。
------------------------- 追加
HTML TIDY
はどうでしょう、幾分かはWell−Formed 能力があるようです
HTML以外にも、流用可能?

[ メッセージ編集済み 編集者: MMX 編集日時 2004-04-02 15:44 ]
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-01-23 18:08
回答ありがとうございました。
引用:
まともな方法
SGMLのパーサーを引っ張り出して、SGML→XML変換(SGMLの正規化とかいう用語かも)
してから処理する。記憶では、ジェームス・クラーク(XML界のヘビー級選手)の SP1.3(NSGMLS)
にはオプションが入っていた。日本語処理では環境変数設定とかの説明ページはもう消えたかも。
EUCコードのASCII処理で強行突破できるか?


この方法で検討してみたいと思います。
XML変換が出来てからは大体わかるのですが、
SGMLのパーサーが良くわかりません。
調べてみます。。


引用:
金持ちA様の方法
古くからSGMLを扱っているソフトメーカのxml変換ツールを買う。
GUIも付いているので楽です。


本当はこれが信頼性も高そうで良いのでしょうけど、
なにぶん貧乏B様でして(個人的にも)・・・。
1

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