このようなクラスがあります。
public class Orderinfo
{
public string billing_company { get; set; }
public string delivery_company { get; set; }
public string delivery_phone { get; set; }
public string orderid { get; set; }
public string email_address { get; set; }
public string delivery_firstname { get; set; }
public string delivery_lastname { get; set; }
public string delivery_street_address { get; set; }
public string delivery_city { get; set; }
public string delivery_state { get; set; }
public string delivery_postcode { get; set; }
public string giftwrap_type { get; set; }
public string billing_firstname { get; set; }
public string billing_lastname { get; set; }
public string billing_street_address { get; set; }
public string billing_city { get; set; }
public string billing_state { get; set; }
public string billing_postcode { get; set; }
public string billing_phone { get; set; }
public string transaction_id { get; set; }
public string shippingtype { get; set; }
public string cc_type { get; set; }
public string personal_note { get; set; }
}
public class Ordertotals
{
public string shipping { get; set; }
public string subtotal { get; set; }
public string tax { get; set; }
public string discount { get; set; }
public string total { get; set; }
}
public class Product
{
public string product_id { get; set; }
public string product_sku { get; set; }
public string product_quantity { get; set; }
public string product_price { get; set; }
public string product_name { get; set; }
}
public class Orderproducts
{
public List<Product> product { get; set; }
}
public class Order
{
public Orderinfo orderinfo { get; set; }
public Ordertotals ordertotals { get; set; }
public Orderproducts orderproducts { get; set; }
}
このクラスを次の関数でシリアル化すると;
public class Utf8StringWriter : StringWriter
{
public override Encoding Encoding
{
get { return Encoding.UTF8; }
}
}
public static string ToXml(object param)
{
var stringwriter = new Utf8StringWriter();
var serializer = new XmlSerializer(param.GetType());
serializer.Serialize(stringwriter, param);
return stringwriter.ToString();
}
次の出力を受け取りました(その一部)。
<orderproducts>
<product>
<Product>
<product_id>76</product_id>
<product_sku>16269</product_sku>
<product_quantity>1</product_quantity>
<product_price>15.0000</product_price>
<product_name>Sesame Street Take along Elmo</product_name>
</Product>
<Product>
<product_id>77</product_id>
<product_sku>16999-1219</product_sku>
<product_quantity>1</product_quantity>
<product_price>20.0000</product_price>
<product_name>Buddy the Dog - Red</product_name>
</Product>
</product>
</orderproducts>
実際には、製品のリストを orderproducts のすぐ下で開始する必要がありますが、他の製品クラスをカバーする追加のタグがあります。
このタグを無視する方法はありますか? したがって、次のようになります。
<orderproducts>
<Product>
<product_id>76</product_id>
<product_sku>16269</product_sku>
<product_quantity>1</product_quantity>
<product_price>15.0000</product_price>
<product_name>Sesame Street Take along Elmo</product_name>
</Product>
<Product>
<product_id>77</product_id>
<product_sku>16999-1219</product_sku>
<product_quantity>1</product_quantity>
<product_price>20.0000</product_price>
<product_name>Buddy the Dog - Red</product_name>
</Product>
</orderproducts>