我需要反序列化普通的xml,不带名称空间和根元素,例如:
<element name="1">
<subelement1>2</subelement/>
</element>
<element name="2">
<subelement1>3</subelement/>
</element>如何使用XmlSerializer完成此操作?我有xsd.exe生成的XmlDataset。但是当我使用代码时,我看到InvalidOperationException和消息"< < xmlns=''>不期望的“
发布于 2014-10-25 01:46:11
如下所示。要点:
XmlSerializer针对工作
代码:
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
[XmlRoot("element")]
public class MyElement
{
[XmlAttribute("name")]
public string Name { get; set; }
[XmlElement("subelement1")]
public string Value { get; set; }
}
public static class Program
{
static void Main()
{
var xml = @"
<element name=""1"">
<subelement1>2</subelement1>
</element>
<element name=""2"">
<subelement1>3</subelement1>
</element>";
var ser = new XmlSerializer(typeof(MyElement));
using (var sr = new StringReader(xml))
using (var xr = XmlReader.Create(sr, new XmlReaderSettings
{
IgnoreWhitespace = true,
ConformanceLevel = System.Xml.ConformanceLevel.Fragment
}))
{
while (xr.MoveToContent() == XmlNodeType.Element)
{
using (var subtree = xr.ReadSubtree())
{
var obj = (MyElement)ser.Deserialize(subtree);
Console.WriteLine("{0}: {1}",
obj.Name, obj.Value);
}
xr.Read();
}
}
}
}发布于 2014-10-25 02:02:01
This所以这个问题可能会有帮助。它涉及到使用dynamic,而不是您提到的xsd。
至于InvalidOperationException问题,您能不能给出一个简单、完整的生成错误的示例?它将有助于识别问题。
https://stackoverflow.com/questions/26552801
复制相似问题