シリアル化する必要のあるテーブルがあります。
その私のクラス、私はそれにテーブル値を追加します
public class NewCVXml
{
[XmlArray]
[XmlArrayItem(ElementName = "Name")]
public List<string> FieldFirst { get; set; }
[XmlArray]
[XmlArrayItem(ElementName = "Value")]
public List<string> FieldSecond { get; set; }
[XmlArray]
[XmlArrayItem(ElementName = "State")]
public List<string> FieldThird { get; set; }
}
これはajax(Request.Form)からの値です
{field1 = name1&field1 = name2&field1 = name3&field2 = value1&field2 = value2&field2 = value3&field3 = Private&field3 = Public&field3 = Public}
これはajaxによって呼び出された私のc#関数です(投稿用)
string xmlText;
NewCVXml newCv = new NewCVXml();
newCv.FieldFirst = Request.Form.GetValues(0).ToList();
newCv.FieldSecond = Request.Form.GetValues(1).ToList();
newCv.FieldThird = Request.Form.GetValues(2).ToList();
try
{
XmlSerializer serializer = new XmlSerializer(newCv.GetType());
MemoryStream ms = new MemoryStream();
using (XmlTextWriter writer = new XmlTextWriter(ms, Encoding.UTF8) { Formatting = Formatting.Indented })
{
serializer.Serialize(writer, newCv);
ms = (MemoryStream)writer.BaseStream;
xmlText = new UTF8Encoding().GetString(ms.ToArray());
ms.Dispose();
return Content(xmlText);
}
}
catch (Exception e)
{
return Content( "Hata: " + e.Message);
}
そしてこのxmlは作成します
<?xml version="1.0" encoding="utf-8"?>
<NewCVXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FieldFirst>
<Name>name1</Name>
<Name>name2</Name>
<Name>name3</Name>
</FieldFirst>
<FieldSecond>
<Value>value1</Value>
<Value>value2</Value>
<Value>value3</Value>
</FieldSecond>
<FieldThird>
<State>Private</State>
<State>Public</State>
<State>Public</State>
</FieldThird>
</NewCVXml>
しかし、私はそのxmlのようなものが欲しい
<?xml version="1.0" encoding="utf-8"?>
<NewCVXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Rows>
<name1 state="Private">value1</name1>
<name2 state="Public">value2</name2>
<name3 state="Public">value3</name3>
</Rows>
</NewCVXml>
そのxmlのように作成する方法がわかりません。各行にクラスを使用することはできません。行のセルは変更可能だからです。つまり、name1、XXX、YYY、または...ユーザーによって異なります。すべてが動的であるため、文字列リストを使用し、リスト値からタグ名を作成する必要があると思います。