問題タブ [txmldocument]

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.

0 投票する
3 に答える
1295 参照

delphi - TXMLDocumentの代わりに?

最近、コードをDelphi2009からDelphiXEにアップグレードし、Indyコンポーネントを更新しました(これが適切かどうかはわかりません)。

しかし、それ以来、XMLファイルのロードと保存時にWindowsServer2003マシンでエラーが発生しました。

以下はエラーです

DLL msvcrt.dllは、他のオペレーティングシステムの600kb以上と比較して、Windows Server 2003でははるかに小さい(300kb程度)...そのため、そのファイルに何かが欠落していて、エラーが発生します...

誰かがこれを修正する方法を知っていますか?TXMLDocumentまたは、私が試すことができる代替手段はありますか?

0 投票する
2 に答える
789 参照

delphi - IXMLDocument を使用した NTDLL でのアクセス違反

デバッガーが Ntdll.NtRaiseException で停止するアドレス 0xfeeefeee の読み取りでアクセス違反が継続的に発生します。これ以上デバッグすることはできません。アプリに障害が発生したことを示すループ状態が発生するためです。ステップを使用するか、実行します...これは私を最初に戻します。これは明らかに IDE (Delphi XE2) 32 ビットでのみ発生します。私のアプリケーションは、次のコードを使用しています

ファイルが開いたら、xml データ バインディング ウィザード (File New Other XML) から読み込まれた関数を呼び出して、上記のプロシージャで開いた xml ファイルを解析します。私の意図は、csv ファイルを作成し、sqlldr を使用してデータを Oracle データベースにエクスポートすることです。IDE の外ではすべての作業が見つかり、一晩中 sring グリッドにデータを表示するだけでアプリケーションを実行したままにすることができますが、ide では数分以内にクラッシュします。コール スタックには、有用なものは何も表示されません。ご覧のとおり、TXMDocument.create と NewXML を試しましたが、役に立ちませんでした。オブジェクトをフォームに配置して、そのインスタンスを無駄に使用しようとしました。どなたかアイデアをお願いします。(Windows 7 64 ビットですが、オラクルの依存関係のために 32 ビットに準拠しています)

編集、debug dcus がオンになっている場合でも、コール スタックは、ole32.dll およびその他の nt 関連の dll への参照だけで何も役に立たないことを示します

アプリのコードを以下に示します (一部)。

openfile は、このタイプのプロシージャによって呼び出されます

前に述べたように、TXMDocument、IXMLDocument、および Create と NewXMDocument を使用してみましたが、それでもエラーが発生します。DEbug dcus' は違いはありません。プロジェクトヘッダーと MadExcept で FastMM4 を使用するのにうんざりしていますが、エラーをキャッチしません。

0 投票する
1 に答える
4111 参照

delphi - XML ファイルを投稿するための Indy Tidhttp の正しいエンコーディングは何ですか?

Indy Client を使用するアプリケーションの XML ファイルに無効な文字があることに気付きました (実際には IdHttp のデフォルト パラメータを使用しています)。

これが私のコードです:

私の XML ファイルは UTF-8 でエンコードされています。

サーバーで適切なエンコーディングを取得するにはどうすればよいですか (サーバーには Indy も使用しています)。

0 投票する
2 に答える
5157 参照

delphi - string から xmlNode delphi へ (または xml フラグメントを TXMLDocument に追加する方法)

整形式の XML を含むテキスト文字列がいくつかあります。

IXMLNodes(1) これらの文字列を変換してから (2) 既存の に追加できるようにしたいと考えていますXMLDocumentXMLDocumentできれば、新しい最初 を宣言しないでください。

これは不可能に思えますか?

ただし、同等のことを達成する簡単な方法はありますか? 私の最初の考えは、IXMLNode.XML(string) プロパティを使用して新しい文字列を挿入することでした。IXMLNode.XML読み取り専用のような運はありません。

に次の文字列がある場合の例を次に示しますTStringList

そして、次の XML がすでに にロードされていましたがTXMLDocument、上記の 2 行を下に簡単に追加するにはどうすればよいTXMLDocumentでしょうか?

これを達成する他の(簡単な)方法はありますか(XMLプロパティの保護されたハックはありません)?

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

0 投票する
1 に答える
2374 参照

delphi - TXMLDocument で空白を保持するときの Delphi 例外

これは私の以前の投稿のフォローアップです: String to XmlNode Delphi (or how to add an x​​ml fragment to TXMLDocument) 新しい質問を始めるのが適切だと思われました...

基本的に、整形式の xml スニペットを既存の xmldocument に追加しています。前の解決策で提案されたコードは、[poPreserveWhiteSpace] を TXMLDocument.ParseOptions に追加するまではうまく機能していました。

[poPreserveWhiteSpace] を削除すると、すべて正常に動作しますが、空白は保持されません。実際には、終了タグを新しい行に配置します。

Target TXMLDocument のコード スニペットを次に示します。

上記の Options と ParseOptions のさまざまな組み合わせを試しましたが、[poPreserveWhiteSpace] を削除することによってのみコードを機能させることができます。

例外をトリガーするコードは、次の 2 行目です。

xml スニペットを追加する前に、LoadXMLData(..) の戻り値への参照を作成し、それらの ParseOptions を一致するように設定しようとしましたが、うまくいきませんでした。

何かご意見は?

編集:問題を示すために自己完結型のサンプル コードを追加します。タイトルを明確化。 ここにいくつかの単純化されたコードがあります。[poPreserveWhitespace] を含む行をコメントアウトしない限り、例外が発生することに注意してください。**編集 2: Remy の提案に従って、空白を保持するようにコードを微調整します。FormatXMLData を呼び出すときにまだ問題があります。

マージされた XML ファイルの結果... フォーマット中に空白のプロパティ値が消去されました (そして、データをフォーマットする必要がありますが、それは本当に醜いです)。

0 投票する
2 に答える
2811 参照

delphi - TXMLDocument 経由で IXMLDOMDocument2 にアクセスしていますか?

Delphi の TXMLDocument クラスを使用し、TransformNode メソッドを使用して XSLT 変換を実行する実用的なコードがいくつかあります。

<msxml:script>しかし、XSLT Javascript 関数 (タグ)を有効にする必要があります。これは、のAllowXsltScriptプロパティIXMLDOMDocument2を true に設定する必要があることを意味します。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms760290(v=vs.85).aspx

私はこれを成功裏に達成しました - ただし、Delphi ライブラリ関数のソースCreateDOMDocumentmsxmldom.pas.

明らかに、これは満足のいくものではありません。では、ライブラリ コードを変更せずに IXMLDOMDocument2 オブジェクトにアクセスするにはどうすればよいでしょうか?