当嵌套对象具有名称空间时如何反序列化XML

很高的男生

给定以下XML:

<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <title>Title One</title>
  </webPart>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <title>Title Two</title>
  </webPart>
</webParts>

以及以下c#:

[XmlRoot("webParts")]
public class webParts : List<webPart>
{
    static public webParts FromXml(string path)
    {
        webParts returnValue = null;
        var serializer = new XmlSerializer(typeof(webParts));
        using (var stream = File.OpenRead(path))
        {
            returnValue = (webParts)serializer.Deserialize(stream);
        }
        return returnValue;
    }
}

public class webPart
{
    public string title { get; set; }
}

我正在尝试反序列化XML。我无法控制XML,可以更改c#。如果我在webPart元素中删除了名称空间,则可以在反序列化过程中执行此操作,它可以正常工作。但是,似乎有点糊涂。我觉得应该将XML属性添加到类中,但找不到正确的命名空间标签组合。上面的代码反序列化了webPart,但是计数为0,没有一个webPart元素被反序列化。为了使这项工作对C#应该做什么?谢谢!

鲁佛爵士

在大多数情况下,使用VS从XML构建类是一项非常简单的任务。

您问题中的XML将转换为该结构

/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute( "code" )]
[System.Xml.Serialization.XmlTypeAttribute( AnonymousType = true )]
[System.Xml.Serialization.XmlRootAttribute( Namespace = "", IsNullable = false )]
public partial class webParts
{

    private webPart[ ] webPartField;        

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute( "webPart", Namespace = "http://schemas.microsoft.com/WebPart/v3" )]
    public webPart[ ] webPart
    {
        get 
        {
            return this.webPartField;
        }
        set
        {
            this.webPartField = value;
        }
    }
}

/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute( "code" )]
[System.Xml.Serialization.XmlTypeAttribute( AnonymousType = true, Namespace = "http://schemas.microsoft.com/WebPart/v3" )]
[System.Xml.Serialization.XmlRootAttribute( Namespace = "http://schemas.microsoft.com/WebPart/v3", IsNullable = false )]
public partial class webPart
{

    private string titleField;

    /// <remarks/>
    public string title
    {
        get
        {
            return this.titleField;
        }
        set
        {
            this.titleField = value;
        }
    }
}

那可以用来转换你的xml

public partial class webParts
{
    static public webParts FromXml(string path)
    {
        webParts returnValue = null;
        var serializer = new XmlSerializer(typeof(webParts));
        using (var stream = File.OpenRead(path))
        {
            returnValue = (webParts)serializer.Deserialize(stream);
        }
        return returnValue;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当嵌套对象具有名称空间时如何反序列化XML

来自分类Dev

具有名称空间的C#XML反序列化

来自分类Dev

具有多个名称空间的XML反序列化

来自分类Dev

如何反序列化没有名称的JSON.NET对象?

来自分类Dev

从具有多个名称空间的XML反序列化选择元素

来自分类Dev

如何对具有不同名称的对象数组进行反序列化?

来自分类Dev

使用名称空间和多个嵌套元素反序列化XML

来自分类Dev

如何反序列化具有两个名称相同但元素具有不同数据类型的XML?

来自分类Dev

由于名称空间的原因,无法从XML反序列化

来自分类Dev

使用多个名称空间反序列化xml

来自分类Dev

如何在 JSON.NET 中反序列化具有嵌套对象列表的对象列表?

来自分类Dev

反序列化具有对象 ID 作为对象名称的 JSON 对象列表

来自分类Dev

使用具有不同元素名称的同一对象反序列化Xml

来自分类Dev

根标记中具有多个命名空间的 XML 的反序列化

来自分类Dev

反序列化具有不同命名空间的 xml 文件

来自分类Dev

是否可以反序列化和序列化具有不同属性名称的json对象?

来自分类Dev

反序列化具有嵌套字典的JSON文件

来自分类Dev

使用Jackson反序列化包装在具有未知属性名称的对象中的JSON

来自分类Dev

反序列化具有不同结构和名称的json对象

来自分类Dev

具有多个元素名称的反序列化的简单xml框架

来自分类Dev

在C#中反序列化具有相同名称的多个XML元素

来自分类Dev

从不同元素中反序列化具有相同名称的xml属性

来自分类Dev

在C#中反序列化具有不同类型名称的XML元素

来自分类Dev

反序列化XML到具有相同元素名称的派生类?

来自分类Dev

具有多个名称相同但内容不同的元素的 XML 反序列化

来自分类Dev

反序列化具有不同名称的属性?

来自分类Dev

如何在C#对象中反序列化此嵌套的xml

来自分类Dev

反序列化hazelcast地图对象时,读取DataSerializable时出现问题,名称空间:0,ID:0

来自分类Dev

XStream反序列化具有层次结构对象列表的xml

Related 相关文章

  1. 1

    当嵌套对象具有名称空间时如何反序列化XML

  2. 2

    具有名称空间的C#XML反序列化

  3. 3

    具有多个名称空间的XML反序列化

  4. 4

    如何反序列化没有名称的JSON.NET对象?

  5. 5

    从具有多个名称空间的XML反序列化选择元素

  6. 6

    如何对具有不同名称的对象数组进行反序列化?

  7. 7

    使用名称空间和多个嵌套元素反序列化XML

  8. 8

    如何反序列化具有两个名称相同但元素具有不同数据类型的XML?

  9. 9

    由于名称空间的原因,无法从XML反序列化

  10. 10

    使用多个名称空间反序列化xml

  11. 11

    如何在 JSON.NET 中反序列化具有嵌套对象列表的对象列表?

  12. 12

    反序列化具有对象 ID 作为对象名称的 JSON 对象列表

  13. 13

    使用具有不同元素名称的同一对象反序列化Xml

  14. 14

    根标记中具有多个命名空间的 XML 的反序列化

  15. 15

    反序列化具有不同命名空间的 xml 文件

  16. 16

    是否可以反序列化和序列化具有不同属性名称的json对象?

  17. 17

    反序列化具有嵌套字典的JSON文件

  18. 18

    使用Jackson反序列化包装在具有未知属性名称的对象中的JSON

  19. 19

    反序列化具有不同结构和名称的json对象

  20. 20

    具有多个元素名称的反序列化的简单xml框架

  21. 21

    在C#中反序列化具有相同名称的多个XML元素

  22. 22

    从不同元素中反序列化具有相同名称的xml属性

  23. 23

    在C#中反序列化具有不同类型名称的XML元素

  24. 24

    反序列化XML到具有相同元素名称的派生类?

  25. 25

    具有多个名称相同但内容不同的元素的 XML 反序列化

  26. 26

    反序列化具有不同名称的属性?

  27. 27

    如何在C#对象中反序列化此嵌套的xml

  28. 28

    反序列化hazelcast地图对象时,读取DataSerializable时出现问题,名称空间:0,ID:0

  29. 29

    XStream反序列化具有层次结构对象列表的xml

热门标签

归档