棘手的問題我有一個關於淺序列化對象有關列表<T>到XML
的名單我的實體
public class Requests
{
public string Action { get; set; }
public Meta MetaType { get; set; }
}
public class Meta
{
public string MerchantId { get; set; }
public string IpAddress { get; set; }
public string Version { get; set; }
}
淺序列化,XMLSerializer的
List<Requests> lstXML = new List<Requests>();
Requests xml = new Requests();
xml.Action = "INSERT";
xml.MetaType = new Meta { IpAddress = "192.2.3.4", MerchantId = "DALE", Version = "1" };
lstXML.Add(xml);
xml = new Requests();
xml.Action = "UPDATE";
xml.MetaType = new Meta { IpAddress = "192.2.3.40", MerchantId = "SECD", Version = "1" };
lstXML.Add(xml);
using (var sw = new StreamWriter(@"C:\XML\test.txt"))
{
var serializer = new XmlSerializer(typeof(List<Requests>));
serializer.Serialize(sw, lstXML);
}
輸出文本文件文本一個棘手的問題。 txt
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfRequests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Requests>
<Action>INSERT</Action>
<MetaType>
<MerchantId>DALE</MerchantId>
<IpAddress>192.2.3.4</IpAddress>
<Version>1</Version>
</MetaType>
</Requests>
<Requests>
<Action>UPDATE</Action>
<MetaType>
<MerchantId>SECD</MerchantId>
<IpAddress>192.2.3.40</IpAddress>
<Version>1</Version>
</MetaType>
</Requests>
</ArrayOfRequests>
我現在的問題是
1)我需要刪除<?XML 版本= 「1.0」 ....>和 < ArrayOfRequests ...> 標籤,只保留 的XML我的實體標記。我如何 這樣做?
2)如何在輸出文本文件中CAPITALIZE(CAPS) 元素名稱( - > )?
我期望的文本文件輸出將提前傢伙
<XML>
<REQUESTS>
<ACTION>INSERT</ACTION>
<META>
<MERCHANTID>DALE</MERCHANTID>
<IPADDRESS>202.164.178.163</IPADDRESS>
<VERSION>1</VERSION>
</META>
<REQUESTS>
<REQUESTS>
<ACTION>INSERT</ACTION>
<META>
<MERCHANTID>DALE</MERCHANTID>
<IPADDRESS>202.164.178.163</IPADDRESS>
<VERSION>1</VERSION>
</META>
<REQUESTS>
</XML>
謝謝! =)
如果您將兩個單獨的問題作爲單獨的問題提出,您會獲得更多成功! – 2011-03-26 15:16:03
''標記是強制性的,沒有它你的XML文檔是無效的...... – 2011-03-26 15:21:51
而且無論如何,你只能有1個根元素,所以用你想要的文件格式不能包含多於1個請求對象 – 2011-03-26 15:23:39