none
sgmlを使うのは設定が必要でしょうか? RRS feed

  • 質問

  • いつもお世話になります。
    VisualC#2010、WindowsXPでの動作について質問があります。
    SGMLReaderについて教えてください。
    http://neue.cc/2010/03/02_244.html
    を参考に、

    using Sgml;
              
    static XDocument ParseHtml(TextReader reader)
    {
     using (var sgmlReader = new SgmlReader { DocType = "HTML", CaseFolding = CaseFolding.ToLower })
    としようとしていますが、

    'CaseFolding' は現在のコンテキスト内に存在しません。
    型または名前空間名 'SgmlReader' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
    型または名前空間名 'Sgml' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。

    とエラーです。
    sgmlを使うのは初めてなのですが、これはなにか設定が必要でしょうか?
    参照で、.NETと.comをざっと見た限りでは、sgmlのような文字は見当たらないのですが…。

    2011年2月4日 6:31

回答

  • コンパイルして作った DLL のバージョンが不思議な気がしますが、それは関係あるのでしょうかね。

    手元で試したところだと...

     ・http://sourceforge.net/projects/dekiwiki/files/SgmlReader/ よりソースをダウンロード(最新版の 1.8.7 をダウンロードしてみます。)
     ・適当なフォルダーに解凍します。
     ・解凍したフォルダーの中に「dist」というフォルダーがあるので中を見てみます。
     ・フォルダーの中に「SgmlReaderDll.dll」というファイルがあるので、これを参照設定に追加してみます。

    という手順でビルド エラーは出なくなりました。
    • 回答としてマーク d-kot 2011年2月4日 8:20
    2011年2月4日 8:07

すべての返信

  • 上記の記事の中にあるリンク先から SgmlReader のソース コードを入手してアセンブリを作成した上で、d-kot さんのプロジェクトで参照設定していますか?

    2011年2月4日 6:46
  • totojoさんと同意ですが、sgmlは.NET標準で提供されているものではないです。

    利用するには、相応の設定が必要になります。

    発生しているエラーは、参照設定にsgmlReader関連のものがないことが原因と思われます。

    2011年2月4日 6:57
  • もしくは、ソリューションにSqmlReaderのプロジェクトを追加して、そのプロジェクト自体を参照設定する方法もありますので、必要に応じて試してみて下さい。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年2月4日 6:58
    モデレータ
  • totojoさん、早速ありがとうございました。
    なるほど…。たしかに、いろいろ参考にする、とありました。
    失礼しました…。
    で、そのsgmlReaderのプロジェクトをダウンロードして、コンパイルして、SgmlReaderDll.dll(1.7.4052.29352)というのを作って、それを参照設定で追加してみましたが、依然エラーはおなじでした。
    ひょっとして、dllでなくて、ソースを混在させる必要があるのでしょうか?
    2011年2月4日 7:26
  • ん~何でしょうね、リビルドしてもだめなんですよね?

    2011年2月4日 7:51
  • コンパイルして作った DLL のバージョンが不思議な気がしますが、それは関係あるのでしょうかね。

    手元で試したところだと...

     ・http://sourceforge.net/projects/dekiwiki/files/SgmlReader/ よりソースをダウンロード(最新版の 1.8.7 をダウンロードしてみます。)
     ・適当なフォルダーに解凍します。
     ・解凍したフォルダーの中に「dist」というフォルダーがあるので中を見てみます。
     ・フォルダーの中に「SgmlReaderDll.dll」というファイルがあるので、これを参照設定に追加してみます。

    という手順でビルド エラーは出なくなりました。
    • 回答としてマーク d-kot 2011年2月4日 8:20
    2011年2月4日 8:07
  • 失礼しました。
    プロジェクト-既存項目の追加で追加していましたが、参照設定で追加したところうまくいきました。
    2011年2月4日 8:19