問題タブ [xmlwriter]
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# - .NET XmlWriter での適切な名前空間管理
私は自分の仕事で .NET XML テクノロジを非常に広範囲に使用しています。私がとても気に入っていることの 1 つは XSLT エンジン、より正確にはその拡張性です。ただし、煩わしさの源であり続ける小さなピースが1つあります。大したことも、我慢できないこともありませんが、作成したい美しい XML を作成することが妨げられています。
私たちが行っていることの 1 つは、ノードをインラインで変換し、ある XML ドキュメントから別の XML ドキュメントにノードをインポートすることです。
悲しいことに、ノードを に保存するとXmlTextWriter
(実際にXmlWriter.Create(Stream)
は返されるものは何でも)、名前空間の定義は、必要である (以前に定義された) かどうかに関係なく、そこにすべてスローされます。次のような xml を取得します。
名前空間の定義に関して .NET が効率的であるように説得する方法について、誰か提案はありますか?
PS。追加のボーナスとして、デフォルトの名前空間をオーバーライドして、ノードを作成するときに変更したいと思います。
php - PHP XMLWriter 機能に関するリソースはありますか?
PHP のドキュメントはここにありますが、かなり不足していると思います。これらの関数の使用例はなく、ユーザー コメントが含まれているページは (あるとしても) ごくわずかです。では、これらの関数を使用して XML 文書を作成する方法に関する説明 (およびコード例) はどこで見つけることができるでしょうか?
c# - XmlWriterでutf-16以外のxmlにエンコーディング属性を付ける方法は?
XmlDocument を作成する関数があります。
エンコーディングを設定しましたが、XmlWriter を作成した後、utf-16 エンコーディングが含まれています。文字列(およびStringBuilderと思われる)がutf-16でエンコードされており、変更できないためです。
それでは、encoding 属性を「windows-1250」に設定して、この xml を簡単に作成するにはどうすればよいでしょうか。このエンコーディングでエンコードする必要さえありません。指定された属性が必要です。
編集: .Net 2.0 である必要があるため、新しいフレームワーク要素は使用できません。
c# - IOExceptions を防ぐためにファイルへの XmlWriter アクセスを同期する最善の方法は何ですか?
アプリケーションには、同じファイルに対して XmlWriter.Create を呼び出す複数の場所があり、すべて次の関数を介してアクセスされます。書き込み中に別の呼び出しを行うと、IOException が発生します。アクセスをロックまたは同期する最良の方法は何ですか?
使用されている関数は次のとおりです。
更新: 問題はこの関数の呼び出しだけではないようですが、この関数の書き込み中に別のスレッドがファイルを読み取っているためです。読み取り中にファイルに書き込もうとしないようにロックする最善の方法は何ですか?
c# - C#でXMLライターからXML要素オブジェクトを作成する
私はC#でWindowsサービスを書いています。XmlWriter
XSLT変換の出力を含むがあります。XMLをXMLElement
オブジェクトに取り込んでWebサービスに渡す必要があります。
これを行うための最良の方法は何ですか?
c# - 1 種類の引用符のみをエスケープする XmlWriter
C# コードを次に示します。
次のような文字列を取得しています。
単一引用符ではなく、二重引用符をエスケープするだけです。しかし、XmlWriter.WriteAttributeString(String, String) のドキュメントには次のように書かれています。
属性値に二重引用符または一重引用符が含まれている場合、それらは " に置き換えられます。そして' それぞれ。
ドキュメントが言うことを実行するために設定する必要があるフラグはありますか?
c# - XmlWriterでXMLをメモリに書き込むことは可能ですか?
XML を返す ASHX を作成していますが、実行時にパスが必要です。
しかし、returnXML は今のところ単なる空の文字列です (それは機能しないと思います) が、応答テキストとして送信できるものに XML を書き込む必要があります。XmlDocument を試しましたが、文字列を期待するエラーが発生しました。ここで何が欠けていますか?
c# - 生成されたDataTemplateの背後にあるコードでのEventBinding
シナリオから始めましょう:
UserControl内にItemsControlがあります。このItemsControlには、コードビハインドで作成および追加される動的に作成されたDataTemplateがあります。コードビハインドでDataTemplateを作成する良い方法がないように思われるため、DataTemplateのxamlコードをプログラムで文字列に生成し、XamlReaderを使用してそこからDataTemplateオブジェクトを作成する必要がありました。
生成されたXAMLコードは次のようになり、実際に使用されます(アイテムは期待どおりにレンダリングされます)。
不思議に思うかもしれませんが、コントロールをレンダリングするためにXamlReaderがxmlns属性を必要とします。そうしないと、コードに到達したときに例外が発生します。
私の問題:
アイテムが期待どおりに表示され、データが正しくバインドされている間、バインドされたデータを再フォーマットする必要があるcustomConverterも、LostFocusイベントも正しく適用されません。エラーメッセージや警告が表示されず、コンバーターとイベントが呼び出されません。なぜ、どのようにこれを機能させることができるのか、誰か考えていますか?
アップデート:
この問題を解決するか、別のアプローチを試してみる必要があります。前回のテストでは、コンバーターをDataTemplateに直接追加しようとしましたが、うまくいきませんでした。生成されたコードは次のようになります。
何か案は?
アップデート2:
XamlReader.Load()がイベントをフックできないことがわかったので、Silverlightフォーラムでこのスレッドを参照してください
コンバーターは機能するはずですが、まだ見られない名前空間の問題があると思います。私は「単純な」ItemsControlアプローチでは選択肢がないので、ニーズを満たすための別の方法を探す時が来たと思います。
.net - XmlWriter エンコーディングの問題
次のコードがあります。
XML は正しく生成されます。ただし、私の問題は、文字列 'test' の最初の文字が ï (char #239) であるため、一部の xml パーサーでは無効になることです: これはどこから来たのですか? 私は正確に何を間違っていますか?
最初の文字の後に開始するだけで問題を解決できることはわかっていますが、単に問題にパッチを当てるよりも、なぜそこにあるのかを知りたいです。
ありがとう!