問題タブ [msxml]
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.
msxml - MSXML ドキュメントをすばやくクリアするか、再作成しますか?
再利用する前に、MSXML2.DOMDocument オブジェクトの以前のコンテンツをクリアする簡単な方法はありますか? 私はそれらを破棄して毎回新しいインスタンスを作成する習慣がありましたが、これは無駄だと思い、いくつかのテストケースをプロファイリングするとこれが確認されるようです.
この場合、移植性のために MSXML 3.0 を使用していますが、この古いバージョンには、XPath を使用して大量のノード セットを選択する場合にいくつかの癖があることに気付きました。ドキュメント ツリー全体を選択してから削除しようとすると、きれいに感じられず、思ったほど速く動作しません。MSXML 3.0 が使用する "怠惰な選択" も自信を持たせません。
以前は、MSXML 3.0 以前のバージョンでは、selectNodes メソッドを呼び出すことによって作成された選択オブジェクトがノード セットを徐々に計算していました。DOM ツリーが変更された場合、selectNodes 呼び出しがまだそのコンテンツをアクティブに反復している間に、選択または返されたノードが動作によって変更される可能性がありました。MSXML 4.0 以降では、ノード セットの結果は選択時に完全に計算されます。これにより、反復が単純で予測可能になります。まれに、この変更により、以前の動作に対応するために記述されたレガシー コードが影響を受ける場合があります。
また、このようなオブジェクトを再利用するには、使用するまでに残る可能性があるさまざまなプロパティ (SelectionLanguage など) の現在の設定に注意する必要があることも認識しています。ただし、特に再利用が常に同じパターンに従う場合は、大したことではないと思います。
私が求めているのは、ロードされた DOM をクリアして再利用するためのクリーンで迅速な方法、または再利用が再作成の代替手段よりも悪い理由についてのより多くの入力であると思います。
msxml - MSXML を使用して XML ノードに属性を設定する方法を教えてください。打たれる
MSXML を使用して XML ノードに属性を設定しようとしています。IXMLDOMElement だけがメンバ関数 setatrribute を持ちます。だから私は文書要素を手に入れました。
selectsinglenode関数を使用して、属性を設定する必要がある必要なノードを選択しました。必要なノードを選択した後、属性を設定しようとしました。
しかし、PElement ポインタは必要なノードに移動しません。ルートノードにとどまりました。結果:ルート自体に属性を追加しました
PElement を selectsinglenode 関数の結果のノードにシフトする方法はありますか。属性を設定できるようにします。
c++ - MSXMLを使用してXMLノードに属性を設定します。私は打たれました
MSXMLを使用してXMLノードに属性を設定しようとしています。IXMLDOMElement
単独でメンバー関数がありますsetAttribute
。だから私はドキュメント要素を手に入れました。
selectSingleNode
関数を使用して属性を設定する必要があるノードを選択しました。必要なノードを選択した後、属性を設定してみました。
ただし、PElement
ポインタは必要なノードに移動しません。ルートノードにとどまりました。結果:ルート自体に属性を追加しました。
PElement
関数が生成されたノードにシフトする方法はありselectSingleNode
ますか?属性を設定できるようにします。
xmlhttprequest - msxml3.dll:指定されたリソースのダウンロードに失敗しました-XMLHTTPを使用する場合
リモートサーバーページにXMLHTTPリクエストを送信するJavaスクリプトコードスニペットがあります。以下は私のコードです
最後の行(send())を実行すると、「msxml3.dll:指定されたリソースのダウンロードに失敗しました」などのエラーが発生します。。私の開発マシンはWinXPSP2で実行されています
誰かがこれを取り除くのを手伝うことができますか?
xml - xml の RegEnumkeyEx
ここで、xml をレジストリ、computer をレジストリ キー、keyboard、mouse、harddisk と仮定します。これらは computer のサブキーです。MSXML とレジストリ関数を使用して xml からサブキーを列挙する方法を教えてください。
xml - MSXML/ASP での UTF-8 エンコードされた XML の解析
私は HTTP POST (x-www-form-urlencoded) の受信側にいて、フィールドの 1 つに XML ドキュメントが含まれています。そのドキュメントを受け取り、いくつかの要素を調べて、データベースに保存する必要があります (後で使用するため)。ドキュメントは UTF-8 形式 (および適切なヘッダーを持つ) であり、多くの奇妙な文字が含まれている可能性があります。
データを受け取ると、次のようになります。
DOM 文書から掘り出すことができるものはすべて、依然として UTF-8 形式です。たとえば、このドキュメント (大幅に簡略化されています):
常に次のように出てきます
xmlDoc.XML を見ると、次のようになります。
ヘッダーからエンコーディングを削除します (VBScript で使用している文字列は「エンコーディングにとらわれない」ため、この種の意味はあります) が、それでも UTF-8 でエンコードされたドキュメントを表す一連の文字です。
MSXML がヘッダーのエンコーディング情報を気にしていないかのようです。問題は MSXML にあるのか、それとも投稿データのエンコーディングにあるのか? これは「ダブル エンコーディング」の形式であり、最初に UTF-8 (特定の文字が数バイトで書き込まれる) で、次に 1 バイトずつ urlencode されます (「ä」は実際には %C3%A4 として送信されます)。
常に UTF-8 であると想定するようなハードコーディングはしたくありません (将来的には UTF-16 になる可能性があるため)。データにはキリル文字やアラビア文字が含まれている可能性があるため、他の文字セット (iso-8859-1 など) への「ハード変換」もできません。これを修正するにはどうすればよいですか?
.net - XSLT 変換中にmsxml がタグを正しく閉じることができない
C# を使用して RSS フィードを解析しようとしていますが、XSLT で変換する必要があります。これが私の XSLT のスニペットです。
ランダム RSS (the corriere della serra )を使用すると、これは XML Spy で正しくレンダリングされます。
しかし、Microsoft .net ツールを使用すると (コードまたは Visual Studio XSLT デバッガーを使用して)、次のようになります。
</link>
マークアップは一切出力されません。「リンク」を「XXX」に変更すると、これは完全に機能しますが、残念ながらこれはオプションではありません。
ここで何が起こっているのか?
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 - EOutOfMemoryDelphiを使用した大規模なXMLの作成
Delphiを使用して、リレーショナルデータベースのデータからXMLドキュメントを作成しています。小さなデータセットでも問題なくテストできますが、データセットのサイズを本番レベルに拡張しようとすると、ノードの作成中にEOutOfMemory例外が発生します。
フォームにドロップされたTXMLDocument(ベンダーとしてMSXML)を使用していますが、コードは通常次のようになります。
このセクション、およびさまざまなデータベーステーブルに適用される他の多くの同様に構築されたセクションでは、何度も実行されました。この例では、ANodeは、コンテナーとして使用するために関数に渡されるIXMLNodeです。
結果として得られるディスク上のXMLファイルが10メガバイトを超えるとは思わない。XMLNodeの作成と廃棄でメモリリークが発生していると思いますが、問題を追跡する方法を理解するのに十分なインターフェイスに精通していません。
xml - Delphi:無効なXMLはMSXML検証を通過します
特定のスキーマに対してXMLを検証するために、MSDNでJScriptの例を書き直そうとしました。
最初の試みとして、例で使用されているように、sl-valid.xml、sl-notValid.xml、およびsl.xsdファイルを使用しました。
私のコードは次のようになります:
sl-notValid.xmlファイルを試しても、「XML検証OK」が表示されます。誰かがこれを見たことがありますか?上記のコードとJScriptの例http://msdn.microsoft.com/en-us/library/ms764717%28VS.85%29.aspxの基本的な違いは何ですか?