コレクション クラスを xml データに変換し、その xml データを xml ファイルに追加しようとしています。これが私の関数です。
public void XmlWriter(List<Email> Femails)
{
string ErrorXmlFile = @"../../Retries.xml";
try
{
if (!File.Exists(ErrorXmlFile))
{
XmlSerializer xSeriz = new XmlSerializer(typeof(List<Email>));
FileStream fs = File.Open(ErrorXmlFile, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
xSeriz.Serialize(fs, Femails);
}
else
{
foreach(Email email in Femails)
{
XmlDocument doc = new XmlDocument();
doc.Load(ErrorXmlFile);
XmlNode xnode = doc.CreateNode(XmlNodeType.Element, "ArrayOfEmail", null);
XmlSerializer xSeriz = new XmlSerializer(typeof(Email));
StringWriter sw = new StringWriter();
xSeriz.Serialize(sw,email);
xnode.InnerXml = Convert.ToString(sw);
doc.DocumentElement.AppendChild(xnode);
doc.Save(ErrorXmlFile);
}
}
}
catch (Exception ex)
{
throw ex;
}
}
上記の関数では、「femail」はリストのパラメーターであり、Email はユーザー定義のカスタム クラスです。最初に、ファイルが存在するかどうかを確認します。そうでない場合は、今は正常に動作しますが、既存のファイルにデータを追加する必要がある場合は失敗します。
上記のコードに従って、 <?xml version="1.0" encoding="utf-16"?>
バインドする前に削除したいこのタグを使用して、単一の Email オブジェクトを xml データに変換します。
私のコードから得た出力は次のとおりです。
<?xml version="1.0"?>
<ArrayOfEmail xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Email>
<UtcDateTime>2013-01-23T10:09:48+05:30</UtcDateTime>
<From>Rajendra Bhalekar <rajendra.b000@gmail.com></From>
<To>Mansha Suman <asdmansha@gmail.com></To>
<Subject>Ye dil sun raha hai jo mere dil ki hai sada ye...socha tha na maine......</Subject>
<IDX>32a84ef7-31bf-4366-bcab-ec10b2f39bc6</IDX>
<Body>
Hi Raj,
Dil pe mat le yaar dil pe mat le....
idx:32a84ef7-31bf-4366-bcab-ec10b2f39bc6
odhani chunariya tere naam ki - Pyar kiya to darna kya
sona sona telephone dhun pe hasne wali - hidustaniREPLY ABOVE THIS LINEdil
ibadat kar raha hai
Thanks & regards,
Raj
</Body>
<ExtractReplyText>Hi Raj,Dil pe mat le yaar dil pe mat le....idx:32a84ef7-31bf-4366-bcab-ec10b2f39bc6odhani chunariya tere naam ki - Pyar kiya to darna kya</ExtractReplyText>
</Email>
<ArrayOfEmail>
<?xml version="1.0" encoding="utf-16"?>
<Email xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<UtcDateTime>2013-01-23T10:09:48+05:30</UtcDateTime>
<From>Rajendra Bhalekar <rajendra.b000@gmail.com></From>
<To>Mansha Suman <asdmansha@gmail.com></To>
<Subject>Ye dil sun raha hai jo mere dil ki hai sada ye...socha tha na maine......</Subject>
<IDX>32a84ef7-31bf-4366-bcab-ec10b2f39bc6</IDX>
<Body>
Hi Raj,
Dil pe mat le yaar dil pe mat le....
idx:32a84ef7-31bf-4366-bcab-ec10b2f39bc6
odhani chunariya tere naam ki - Pyar kiya to darna kya
sona sona telephone dhun pe hasne wali - hidustaniREPLY ABOVE THIS LINEdil
ibadat kar raha hai
Thanks & regards,
Raj
</Body>
<ExtractReplyText>Hi Raj,Dil pe mat le yaar dil pe mat le....idx:32a84ef7-31bf-4366-bcab-ec10b2f39bc6odhani chunariya tere naam ki - Pyar kiya to darna kya</ExtractReplyText>
</Email></ArrayOfEmail>
</ArrayOfEmail>
これは私が期待しているものではありません。必要な修正を提案してください。