- PR -

XmlSerializerでxslを指定してシリアライズしたい

1
投稿者投稿内容
tottmo
会議室デビュー日: 2004/05/30
投稿数: 11
投稿日時: 2007-11-13 19:58
VS2005 C# で Windowsアプリを作成しています。

次のソースのようにSystem.Xml.XmlSerializerを使用して自作クラスOrderTypeをシリアライズしています。

コード:
OrderType order = new OrderType();
XmlSerializer serializer = new XmlSerializer(typeof(OrderType));
using (FileStream stream = new FileStream(@"order.xml", FileMode.Create))
{
serializer.Serialize(stream, order);
}



ここで出力したorder.xmlの2行目に
コード:
<?xml-stylesheet type="text/xsl" href="order.xsl"?>


と書きたいのですが、XmlSerializerでどのようにして指定すればよいかわかりません。

シリアライズした後、ファイルを編集するしかないですかね・・・

よろしくお願いします。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2007-11-13 22:20
前に答えたことがある……と思って検索するとこれが見つかりました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38378&forum=7
// Google の検索結果が結構下の方だったので予備知識なしに見つけるのは無理ですなこりゃ。
tottmo
会議室デビュー日: 2004/05/30
投稿数: 11
投稿日時: 2007-11-14 20:59
Hongliang様

申し訳ありません。既出でしたか。

XmlWriter と WriteProcessingInstruction をキーワードに試したらうまくいきました!
本当にありがとうございました。

コード:
FileStream fs = new FileStream("order.xml", FileMode.Create, FileAccess.Write);
XmlTextWriter writer = new XmlTextWriter(fs, Encoding.UTF8);
//いんでんとするよ
writer.Formatting = Formatting.Indented;
//version
writer.WriteStartDocument();
//スタイルしーと
writer.WriteProcessingInstruction("xml-stylesheet", @"type=""text/xsl"" href=""order.xsl""");
XmlSerializer serializer = new XmlSerializer(typeof(OrderType));
serializer.Serialize(writer, order);

1

スキルアップ/キャリアアップ(JOB@IT)