首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反序列化纯xml

反序列化纯xml
EN

Stack Overflow用户
提问于 2014-10-25 01:04:23
回答 2查看 255关注 0票数 1

我需要反序列化普通的xml,不带名称空间和根元素,例如:

代码语言:javascript
复制
    <element name="1">
       <subelement1>2</subelement/>
    </element>
    <element name="2">
     <subelement1>3</subelement/>
    </element>

如何使用XmlSerializer完成此操作?我有xsd.exe生成的XmlDataset。但是当我使用代码时,我看到InvalidOperationException和消息"< < xmlns=''>不期望的“

EN

回答 2

Stack Overflow用户

发布于 2014-10-25 01:46:11

如下所示。要点:

  • 您需要手动控制读取器以将一致性级别设置为"fragment",要允许多个根节点
  • ,您需要为每个根节点获取一个子树读取器,以便XmlSerializer针对

工作

代码:

代码语言:javascript
复制
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();
            }
        }
    }

}
票数 1
EN

Stack Overflow用户

发布于 2014-10-25 02:02:01

This所以这个问题可能会有帮助。它涉及到使用dynamic,而不是您提到的xsd。

至于InvalidOperationException问题,您能不能给出一个简单、完整的生成错误的示例?它将有助于识别问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26552801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档