2017-11-10 8 views
1

私は現在、XmlTextWriterオブジェクトを直接インスタンス化するコードをいくつか持っています。これにより、引用符を一重引用符(従来のシステムと一致するようにXMLを生成するために必要です)に設定できます。 EGXmlWriterSettingsまたはXmlWriterで引用符を設定する

彼らは述べる XmlTextWriter classためのMicrosoftのドキュメントでただし
var fred = new XmlTextWriter(stream, encoding); 
fred.QuoteChar = '\''; 

の.NET Framework 2.0以降では、我々はあなたがXmlWriter.Createメソッドを使用して たXmlWriterインスタンスと XmlWriterSettingsを作成することをお勧めします新しい機能を活用するためのクラスです。

XmlWriterSettings Classは、さまざまな属性を設定することができますが、引用文字は、そのうちの一つではない、とXmlTextWriterが行うようXmlWriterクラスは、引用文字を公開しません。

私はXmlTextWriterで簡単に解決できないくぼみの問題も解決するので、XmlWriterに移動したいと思いますが、引き続き引用符を設定する必要があります。

XmlWriterクラスで引用符を設定するにはどうすればよいですか?

これは、記載された質問Can one force XMLWriter to write elements in single quotes?の複製です。しかし、唯一の答えのリンクをたどった場合は、XmlTextWriterクラスの引用文字を設定するための解決策が得られます。私が求めているのとは正反対です。

+0

[XMLWriterで要素を単一引用符で強制的に書き込むことはできますか?](https://stackoverflow.com/questions/15457011/can-one-force-xmlwriter-to-write-elements-in-single-引用符) – Sinatr

+0

要するに、あなたはしません。別の引用符文字を使用する能力は 'XmlTextWriter'に一意です。 'XmlWriter'によって使用される内部実装クラスのどれも、そのオプションを持ちません(内部スイッチまたはプライベートスイッチでさえありません)。免責事項:私は自分のマシン(.NET 4.7)で 'System.Xml'の逆アセンブリのみを閲覧しましたが、他のバージョンはおそらく異なった動作をするでしょう。 –

+0

@JeroenMostertうんざりです。今では 'XmlTextWriter'を使って同じ行に空の要素の終了タグを得る方法を見つけなければなりません –

答えて

0

をイェルーンからのコメントを1として、明示的XmlTextWriterクラスでXmlWriterクラスの引用符あなたができるように設定することはできません。

幸いなことに、XmlTextWriterに希望のXMLフォーマットを作成するように納得させる方法を考え出しました。

-1

msdn Webサイトが混乱することがあります。次を使用します

  XmlWriterSettings settings = new XmlWriterSettings(); 
      settings.Indent = true; 
      XmlTextWriter writer = (XmlTextWriter)XmlWriter.Create("", settings); 
      writer.QuoteChar = '\''; 
+0

それは動作しません。 'XmlWriter.Create'は' XmlTextWriter'を返すことはありません(最近のバージョンのフレームワークでは、少なくとも、どれくらい前のものがあるかチェックしませんでした)。 –

+0

@ JeroenMostert 'XmlTextWriter.Create()'から返されるものにも適用されますか? –

+0

@PeterM:別の 'XmlTextWriter.Create'メソッドはありません。これは 'XmlWriter'の静的メソッドです。 'XmlTextWriter'は' XmlWriter'から派生しているので 'XmlTextWriter'で呼び出すことができますが、これは同じ方法です。 –

関連する問題