我需要生成这个看起来简单的 XML,寻找一种干净的方法来生成它。
<order>
<user>2343></user>
<creditcardtype>2333></creditcarttype>
<country>USA</country>
<orderDetails>
<amount>23434</amount>
<shipping>32</shipping>
</orderDetails>
</order>
Since XDocument
已被采取,这是一个XmlWriter
answer:
StringWriter sw = new StringWriter();
using (XmlWriter xw = XmlWriter.Create(sw)) {
xw.WriteStartElement("order");
xw.WriteElementString("user", "2343");
xw.WriteElementString("creditcardtype", "2333");
xw.WriteElementString("country", "USA");
xw.WriteStartElement("orderDetails");
xw.WriteElementString("amount", "23434");
xw.WriteElementString("shipping", "32");
xw.WriteEndElement();
xw.WriteEndElement();
}
string s = sw.ToString();
Or with XmlSerializer
:
[XmlRoot("order")] public class Order {
[XmlElement("user")] public int User { get; set; }
[XmlElement("creditcardtype")] public int CreditCardType { get; set; }
[XmlElement("country")] public string Country { get; set; }
[XmlElement("orderDetails")] public OrderDetails Details { get; set; }
}
public class OrderDetails {
[XmlElement("amount")] public int Amount { get; set; }
[XmlElement("shipping")] public int Shipping { get; set; }
}
....
var order = new Order {
User = 2343, CreditCardType = 2333, Country = "USA",
Details = new OrderDetails {
Amount = 23434,
Shipping = 32
}
};
XmlSerializer ser = new XmlSerializer(order.GetType());
StringWriter sw = new StringWriter();
ser.Serialize(sw, order);
string s = sw.ToString();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)