首页 新闻 会员 周边

关于XML序列化求助

0
悬赏园豆:10 [已关闭问题]

有个类,其中定义了一个集合,比如:

 

StringCollection Strings;

 

当序列化成XML的时候,经过多方测试,都只能达到这样的一个效果:

<StringsRootElement>

<StringsElement>StringsValue1</StringsElement>

<StringsElement>StringsValue2</StringsElement>

...

<StringsElement>StringsValueN</StringsElement>

</StringsRootElement>

 

而我的目标是希望序列化为

<StringsElement>StringsValue1</StringsElement>

<StringsElement>StringsValue2</StringsElement>

...

<StringsElement>StringsValueN</StringsElement>

 

现在我的临时解决方案是在序列化好了后,获得目标的XML文本,通过替换的方式把<StringsRootElement>和</StringsRootElement>替换了。

 

大家在这方面有什么好的解决方案?

 

 

问题补充: 两个回答都没明白我的需求,可能我没说清楚吧,补充如下: 代码: class ROOT { public StringCollection StringsRootElement; } 默认XML序列化结果是: <ROOT> <StringsRootElement> <StringsElement>StringsValue1</StringsElement> <StringsElement>StringsValue2</StringsElement> ... <StringsElement>StringsValueN</StringsElement> </StringsRootElement> </ROOT> 这个结果不是我需要的,我希望生成为: <ROOT> <StringsElement>StringsValue1</StringsElement> <StringsElement>StringsValue2</StringsElement> ... <StringsElement>StringsValueN</StringsElement> </ROOT>
无之无的主页 无之无 | 大侠五级 | 园豆:5095
提问于:2010-01-06 11:12
< >
分享
其他回答(1)
0
StringCollection sc = new StringCollection()
{
"str", "str", "str", "str", "str", "str"
};

XmlSerializer xs
= new XmlSerializer(typeof(StringCollection));
using ( var ms = new MemoryStream() )
{
xs.Serialize(ms, sc);
ms.Position
= 0;

//var x = XmlReader.Create(ms).ReadSubtree().ReadInnerXml();

var xd
= new XmlDocument();
xd.LoadXml(
new StreamReader(ms).ReadToEnd());

var x
= xd.DocumentElement.InnerXml;
}

 

序列化貌似一定要生成根元素……生成后改一下

ps. 不知道为啥注释的那句XmlReader返回空,要不就只能用下面三行了。

DiryBoy | 园豆:639 (小虾三级) | 2010-01-06 15:10
这个SC是一个类的成员,我要把这个类一起序列化到XML中。 比如,原本生成的是: <ROOT> <StringsRootElement> <StringsElement>StringsValue1</StringsElement> <StringsElement>StringsValue2</StringsElement> ... <StringsElement>StringsValueN</StringsElement> </StringsRootElement> </ROOT> 成功生成: <ROOT> <StringsElement>StringsValue1</StringsElement> <StringsElement>StringsValue2</StringsElement> ... <StringsElement>StringsValueN</StringsElement> </ROOT>
支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2010-01-06 15:23
0

XML是必定有根元素的,如果你去掉Root就不是XML了……

Gray Zhang | 园豆:17610 (专家六级) | 2010-01-06 23:11
没看明白我的需求?
支持(0) 反对(0) 无之无 | 园豆:5095 (大侠五级) | 2010-01-09 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册