2011-12-17 23 views
6

XDocumentで作成しているXML文書の先頭にXMLエンコーディングとバージョンが必要です。XDocumentを使用してUTF-8を大文字で取得

私はこれを持っていますが、小文字であり、大文字である必要があります。

何をする必要がありますか?

XDocumentクラス「doc」を使用して新しいXMLドキュメントを宣言します。

doc.Save();を使用してファイルに保存します。

私が試してみました:

  • doc.Declaration.Encoding.ToUpper();
  • を大文字でエンコーディングを入力し、私のXDeclarationに私のdoc.Declarationを設定する新しいXDeclaration
  • を宣言。

まだ小文字で入力されています。

+0

あなたは大文字で、それが必要なのはなぜ?標準に準拠したXMLパーサーには違いはありません。 – Oded

+1

私は同意しますが、それは私にとってではなく、大文字である必要があります。 "doc.Declaration.Version.ToUpper"を試してみました。新しいXDeclarationを宣言し、バージョンを大文字で入力し、私の "doc.Declaration"をXDeclarationに設定しました。それはまだ小文字で、私はdoc.Save()を使用しています。ありがとう – JMK

+0

あなたの質問を編集して、あなたのコメントに入れた詳細を更新してください。これらは、そうでなければあなたの質問を読む人々によって見過ごされるかもしれません。 – Oded

答えて

4

あなたは例えば、カスタムXmlTextWriterを作成することができます。:

public class CustomXmlTextWriter : XmlTextWriter 
{ 
    public CustomXmlTextWriter(string filename) 
     : base(filename, Encoding.UTF8) 
    { 

    } 

    public override void WriteStartDocument() 
    { 
     WriteRaw("<?xml VERSION=\"1.0\" ENCODING=\"UTF-8\"?>"); 
    } 

    public override void WriteEndDocument() 
    { 
    } 
} 

そして、それを使用する:

using (var writer = new CustomXmlTextWriter("file.xml")) 
{ 
    doc.Save(writer); 
} 
+0

パーフェクト、お元気ですか! – JMK

+0

@ハイセンブルク、どうぞよろしく! –

+2

それは完璧から非常に遠いです。それはXMLでさえない。 XMLでは、エンコーディング名を大文字にすることができますが、キーワード "encoding"と "version"は小文字でなければなりません。 –

関連する問題