問題タブ [msxml6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - エラー C2011: 'MSXML2::IXMLDOMImplementation': 'struct' 型の再定義
以前の VC6 で現在 VS 2008 に移行されている C++ プロジェクトを、以前の MSXML 3 の代わりに MSXML 6 を使用するように変更しています。コードが VC6 にあったとき、MSXML3 をインポートして使用していました。
これに置き換えられました
この後、プロジェクトをコンパイルすると、これと他のいくつかの同様のエラー エラー C2011: 'MSXML2::IXMLDOMImplementation' : 'struct' type redefinition が表示されます
上記のエラーは msxml3.tlh ファイルにあります。
1) msxml3 がまだ使用されているのはなぜですか?
2) 問題を MSXML.h に絞り込みました。MSXML.h は、プロジェクトに何らかの形で自動的に含まれています。どうしてこれなの?
3) MSXML.h で参照されている MSXML のバージョンはどれですか?
4) VC++ が自動的にこれほど多くのヘッダー ファイルをインクルードするのはなぜですか? 一部のヘッダー ファイルを含めたくない場合はどうすればよいですか?
5) C++ プロジェクトで MSXML6 を使用する正しい方法は何ですか? #インポート、ヘッダー ファイル?????
6) この問題を解決するにはどうすればよいですか?
いつでも .net をください。ずっときれい。VC++ プロジェクトはめちゃくちゃです。
xml - MSXML 4.0はどうなりましたか?
私はMSXML4.0に依存しています。
Microsoftには、さまざまなMSXML4.0オブジェクトのCLSIDとProgIDを提供するページがあります。
しかし、ProgIDまたはCLSIDは、私のVistaマシンまたは同僚のXPマシンに登録されていません。
- MSXML 4.0は、一部のバージョンのOffice( Office 2003など)にのみ付属していましたか?
- 元々はWindowsXPに同梱されていましたが、後のサービスパックで削除されましたか?
- セキュリティの脆弱性はありましたか?
- それは単に非難されたのでしょうか?
WindowsXPおよびWindowsVistaマシンで利用可能なMSXML5.0に移行したいと思っていますが、可能な限り幅広い互換性があることを確認したいと思います。そして私はMSXML4.0がMSXML5.0よりも広く利用できるだろうと思っていたでしょう。
Microsoftは、MSXML6.0を使用することをお勧めします。
以前のバージョンのMSXMLからMSXML6.0にアップグレードすることをお勧めします。MSXML 6.0は、以前のMSXMLバージョンに比べてセキュリティとパフォーマンスが向上しています。
versioning - MSXML: IXMLDOMNode にどのバージョンの MSXML から来たのかを尋ねるにはどうすればよいですか?
IXMLDOMDocument2がどのバージョンの MSXML であるかを確認するにはどうすればよいですか? IXMLDOMDocument2を指定すると、同じバージョンの別のドキュメントを作成する必要があります。
異なるバージョンの MSXML から IXMLDOMDocument を指定すると、msxml から例外が発生します。
異なるバージョンの MSXML のオブジェクトを混在させるとエラーになります。
Microsoft は内部的に、それがどのバージョンの MSXML から来たのかをインターフェースに尋ねることができます。私は同じものにアクセスする必要があります。
疑似コードで記述された次の仮想関数を考えてみましょう。
問題は、 IXMLDOMNode が MSXML6 から来ている場合です。作成されたのDOMDocument
はバージョン 3 からです (MSXML における Microsoft のバージョン依存のため)。これにより、
COM 例外をスローするには:
Microsoft はインターフェイスにそれがどのバージョンの MSXML から来たかを尋ねることができるので、私は同じことを行うことができるはずですが、どうすればよいでしょうか?
または、指定された場合、同じバージョンのオブジェクトをIXMLDOMNode
作成するにはどうすればよいですか...XMLDOMDocument
xml - MSXML6 でのシリアル化中にどのタグが折りたたまれるかを制御する方法はありますか?
MSXML6 DOM ドキュメントを作成し、シリアル化中に空の要素をシリアル化する方法を制御したいと考えています。
<tag></tag>
<tag/>
この回答は C# のソリューションについて説明していますが、MSXML の ActiveX インターフェイスで可能なことを探しています。(VB6 または一部のスクリプト言語の場合)
xslt - msxsl.exe の後継?
フレームワークを msxml4 から msxml6 に移行する予定です。まだ msxsl.exe を使用しています。コマンド ライン msxsl.exe -u バージョン 6.0 でわかるように、4.0 までの MSXML バージョンのみをサポートしているようです。msxsl.exe の後継はありますか? 代替のコマンド ライン プロセッサはありますか?
xml - XML スキーマのルート要素の定義が正しくありません
次の退屈なルート要素を持つスキーマがあります。
私に関する限り、スキーマは有効であり、たとえば、Excel は問題なくそれを読み取ります。
ただし、MSXML (v3 または v4 または v6) を使用してこのスキーマに対して検証しようとすると、件名のエラーが発生します。(XMLSchemaCache を作成し、読み込まれたスキーマを追加するとエラーが発生します。)
Google から、W3 標準に準拠していない MS XML エンジンには概念上の問題があり、別の名前空間定義を使用する必要があることを知りました。しかし、より正確な定義も問題の適切な説明も見つかりませんでした。フォーラムで返信のない多くの投稿しか見つかりませんでした。
この件についてもう少し詳しく説明してくれる人はいますか?
編集
何らかの理由で、プロジェクトの参照をバージョン 3、4、および 6 に切り替えたにもかかわらず、常にバージョン 3 が使用されていました。4/6への強制切り替えで解決しました。そのため、v3 はスキーマを解析できませんが、他のものは問題ありません。これで閉鎖できると思います。
xml - 最も古い/最も古いノードを取得するためのXpath式
私はXMLスニペットを持っているので、次のようになります。
(たとえば)最も古い州の首都(つまり「ドーバー」)を取得したいと思います。私はここまで到達することができました:
//STATES/STATE[DATEOFSTATEHOOD='7 December 1787']/CAPITAL/text()
しかし、「DATEOFSTATEHOOD={最も早いDATEOFSTATEHOOD}」と言う方法を理解することはできません。
誰かが私を正しい方向に向けることができますか?
解決策:マットの解決策は多かれ少なかれ的を射ています。指摘されたように、Xpath 1.0は使用していた日付形式をサポートしていないため、日付を再形式化する必要がありました(YYYYMMDDDを使用しました)。また、MicrosoftのXMLライブラリ(4.0および6.0)は、Mattの式を含むノードリスト全体を返しました。テストを逆にすると、その問題が修正され、最も古いノードだけが返されるようになりました。
それで:
xml - XSLT テキスト要素を「1 つの空白文字」で変換すると、空のコンテンツが生成される
変換中のこの着信 XML を取得しました (msxsm6 を使用して ASP で XSLT を使用):
<Font> のテンプレートが次の場合:
変換により、ソースの 2 番目の要素のスペース文字が削除されたように見えます。出力される XML は以下のとおりです。2 番目の要素はコンテンツのない空の要素になります。
<xsl:preserve-space elements="Font"/>' で試行錯誤しましたが、役に立たなかったようです。アイデア?ありがとうスタックオーバーフロー!
c# - msxml6.DLLのインターフェイスISAXContentHandlerのメソッド呼び出しに関するクエリ
私はC++とC#の知識がありますが、COMは私にとってエイリアンです。startElement()、endElement、processingInstructions()、characters()などのインターフェイスISAXContentHandler(msxml6.DLLの)のすべてのメソッドが実装されているVC ++COMDLLがあります。つまり、これらのインターフェイスメソッドは、VC ++COMDLLで実装されています。このVC++COM DLLをC#DLLに変換して、この変換されたC#DLLをC#アプリケーションから呼び出すことができるようにします。
私は、これらのインターフェース方法がどこから呼び出されているのか理解していません。VC ++COMDLL内から「関数呼び出しステートメント」が作成されていないためです。
例:----- VC ++COMDLLに実装されているインターフェイスメソッドの1つは次のように始まります--->
クラスは、msxml6.dllからISAXContentHAndlerインターフェイスを実装しています。
SAXContentHandlerがXMLパーサーであることを知っています。この関数のこれらのパラメーターが何であるかわかりません。また、dパラメーター名とともに_RPCキーワードを使用しています。そして、私は理解していません、FROMどこでこれらの関数が呼び出されているのですか。
c++ - 属性と要素の値の読み方
私は次のXMLを持っています:
属性とノードの値を読み取る必要があります。子ノードの数を取得できますが、値を取得する方法がわかりません。