棘手的问题我有一个关于浅序列化对象有关列表<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