mcrblog

vcpp-ml

2002年06月

30

[vcpp 00058765] MSXML 4.0 DOM

こんばんは、けーすけ です。

いつもお世話になっています。早速ですが質問させてください。

【 動作環境 】
OS    :Windows 2000 Professional
開発言語:Microsoft Visual C++ Version 6.0 (SP4)
その他  :Internet Explorer 5.5
          MSXML4.0 DOM

【 質問 】
「MSXML4.0 DOM」を使用して、XMLファイルの読み込み処理を作成しています。

(1) クラスウィザードを使用して、タイプライブラリ(msxml4.dll)から、
    「msxml4.cpp, msxml4.h」を作成し、ソースファイルに取り込んでいます。

(2) 通常のXMLファイルの読み込み処理は、うまく動いています。
    以下のような、タグに名前空間接頭辞がついているXMLファイルの場合、
    うまく動作しません。

    <?xml version="1.0" encoding="Shift-Jis"?>
    <st:strokes xmlns:st="~省略~">
        <st:stroke st:color="#000000">
        </st:stroke>
    </st:strokes>

(3) ロジックは、抜粋して要約すると以下のようになっています。

    IXMLDOMDocument    XMLDoc;
    IXMLDOMNodeList    XMLList;

    XMLDoc.CreateDispatch("Msxml2.DOMDocument.4.0");

    XMLDoc.load("D:\\Test\\Test.xml");

    XMLList = XMLDoc.getElementsByTagName("strokes");


(4) 試してみたこと(試行錯誤したこと)。

  ・ソースファイルに以下のように書いてみたのですが駄目でした。

    #import "msxml4.dll" named_guids raw_interfaces_only
    using namespace MSXML2;

  ・IMXNamespacePrefixes, IMXNamespaceManager というのを使用したら、
    うまく出来るのかと思ったのですが。
    この場合の使用方法が分りませんでした。

  ・IXMLDOMDocument に以下のような関数があったので、使用してみたのですが、
    何も取得されませんでした。

    CString GetNamespaceURI();
    CString GetPrefix();
    CString GetBaseName();
    CString GetUrl();


どなたか情報を知っている方がいれば、教えてください。
どうぞよろしくお願いします。m(._.)m

VC++ のサンプルが余り無く、泣きそうです。。。


-----------------------------------
 Name  : 鈴木 啓介
 E-mai : k...@ssi.co.jp
30

[vcpp 00058765] MSXML 4.0 DOM

こんばんは、けーすけ です。

いつもお世話になっています。早速ですが質問させてください。

【 動作環境 】
OS    :Windows 2000 Professional
開発言語:Microsoft Visual C++ Version 6.0 (SP4)
その他  :Internet Explorer 5.5
          MSXML4.0 DOM

【 質問 】
「MSXML4.0 DOM」を使用して、XMLファイルの読み込み処理を作成しています。

(1) クラスウィザードを使用して、タイプライブラリ(msxml4.dll)から、
    「msxml4.cpp, msxml4.h」を作成し、ソースファイルに取り込んでいます。

(2) 通常のXMLファイルの読み込み処理は、うまく動いています。
    以下のような、タグに名前空間接頭辞がついているXMLファイルの場合、
    うまく動作しません。

    <?xml version="1.0" encoding="Shift-Jis"?>
    <st:strokes xmlns:st="~省略~">
        <st:stroke st:color="#000000">
        </st:stroke>
    </st:strokes>

(3) ロジックは、抜粋して要約すると以下のようになっています。

    IXMLDOMDocument    XMLDoc;
    IXMLDOMNodeList    XMLList;

    XMLDoc.CreateDispatch("Msxml2.DOMDocument.4.0");

    XMLDoc.load("D:\\Test\\Test.xml");

    XMLList = XMLDoc.getElementsByTagName("strokes");


(4) 試してみたこと(試行錯誤したこと)。

  ・ソースファイルに以下のように書いてみたのですが駄目でした。

    #import "msxml4.dll" named_guids raw_interfaces_only
    using namespace MSXML2;

  ・IMXNamespacePrefixes, IMXNamespaceManager というのを使用したら、
    うまく出来るのかと思ったのですが。
    この場合の使用方法が分りませんでした。

  ・IXMLDOMDocument に以下のような関数があったので、使用してみたのですが、
    何も取得されませんでした。

    CString GetNamespaceURI();
    CString GetPrefix();
    CString GetBaseName();
    CString GetUrl();


どなたか情報を知っている方がいれば、教えてください。
どうぞよろしくお願いします。m(._.)m

VC++ のサンプルが余り無く、泣きそうです。。。


-----------------------------------
 Name  : 鈴木 啓介
 E-mai : k...@ssi.co.jp
30

[vcpp 00058764] Re: CoInitializeSecurity()が失敗する

Tietewさん、溝口さんありがとうございました。

お二人のお陰で解決です。
OleInitialize()でInitするんですね。

あっさり行き過ぎて拍子抜けって感じです。

ありがとうございました。

-----------------------------
mailto:t...@mx1.avis.ne.jp
-----------------------------
30

[vcpp 00058764] Re: CoInitializeSecurity()が失敗する

Tietewさん、溝口さんありがとうございました。

お二人のお陰で解決です。
OleInitialize()でInitするんですね。

あっさり行き過ぎて拍子抜けって感じです。

ありがとうございました。

-----------------------------
mailto:t...@mx1.avis.ne.jp
-----------------------------
30

[vcpp 00058763] Re: [vcpp 00058761] CoInitializeSecurity()が失敗する

どうも、溝口@カシオ計算機です。

エラーコード0x800401f0までわかっているなら、
あとは、エラー検索してみてください。

あと、MFCのソースファイルが見れる環境であれば、
OLEINIT.CPPの
AfxOleInit()の先頭部分を見れば、
そのものずばりの解答が、コメントで書いてあります。
では。
記事検索
Amazon.co.jp
  • ライブドアブログ