具有属性的列表的 XML 序列化

2023-11-27

我在另一个列表中有一个列表(具有变体的产品)。我希望父列表具有设置的属性(只是一个id and a name).

所需输出

<embellishments>
    <type id="1" name="bar bar foo">
        <row>
            <id>1</id>
            <name>foo bar</name>
            <cost>10</cost>
        </row>      
    </type> 
</embellishments>

当前代码

[XmlRoot( ElementName = "embellishments", IsNullable = false )]
public class EmbellishmentGroup
{
    [XmlArray(ElementName="type")]
    [XmlArrayItem("row", Type=typeof(Product))]
    public List<Product> List { get; set; }

    public EmbellishmentGroup() {
        List = new List<Product>();
        List.Add( new Product() { Id = 1, Name = "foo bar", Cost = 10m } );
    }
}

public class Product
{
    [XmlElement( "id" )]
    public int Id { get; set; }

    [XmlElement( "name" )]
    public string Name { get; set; }

    [XmlElement( "cost" )]
    public decimal Cost { get; set; }
}

电流输出

<embellishments>
    <type>
        <row>
            <id>1</id>
            <name>foo bar</name>
            <cost>10</cost>
        </row>
    </type>
</embellishments>


你需要创建另一个类来代表type元素。然后您可以为属性添加属性,如下所示:

[XmlRoot(ElementName = "embellishments", IsNullable = false)]
public class EmbellishmentGroup
{
    [XmlElement("type")]
    public MyType Type { get; set; }

    public EmbellishmentGroup() 
    {
        Type = new MyType();
    }
}

public class MyType
{
    [XmlAttribute("id")]
    public int Id { get; set; }

    [XmlAttribute("name")]
    public string Name { get; set; }

    [XmlElement("row")]
    public List<Product> List { get; set; }

    public MyType()
    {
        Id = 1;
        Name = "bar bar foo";
        List = new List<Product>();
        Product p = new Product();
        p.Id = 1;
        p.Name = "foo bar";
        p.Cost = 10m;
        List.Add(p);
    }
}

public class Product
{
    [XmlElement( "id" )]
    public int Id { get; set; }

    [XmlElement( "name" )]
    public string Name { get; set; }

    [XmlElement( "cost" )]
    public decimal Cost { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有属性的列表的 XML 序列化 的相关文章

随机推荐

  • 授权失败:错误域=AKAuthenticationError代码=-7026“(null)”UserInfo={AKClientBundleID=我的捆绑包ID}

    Authorization failed Error Domain AKAuthenticationError Code 7026 null UserInfo AKClientBundleID my bundile id 我有同样的问题 我
  • 在c++中的不同目录中包含头文件

    我最近在学习c 遇到了以下问题 我有一个像这样的目录结构 current directory Makefile include header h src main cpp 我的 header h include
  • Java如何设置jpg质量

    只是想编辑一些代码 以便输出 jpg 质量不是默认的低质量设置 try ImageIO write var6 jpg var7 目前正在使用 我看过一些其他设置质量的 Java 示例 但对 Java 不太熟悉 我无法理解如何插入内容并修改一
  • 无法使用 scrapy 获取表单

    我是使用 scrapy 的新手 我正在尝试从房地产网站获取一些信息 该站点有一个带有搜索表单 GET 方法 的主页 我试图进入 start requests recherche php 中的结果页面 并设置我在 formdata 参数的地址
  • 如何在图表中绘制 pandas groupby 值

    我有一个 csv 文件 其中包含性别和婚姻状况以及更多列 如下所示 Loan ID Gender Married Dependents Education Self Employed ApplicantIncome CoapplicantI
  • Spring 3.1 PropertySourcesPlaceholderConfigurer 和条件导入

    查看 3 1 中新的 spring 属性支持 http blog springsource org 2011 02 15 spring 3 1 m1 unified property management 看起来这应该是可能的
  • 与 Authlogic 一起使用的一些好的角色授权解决方案有哪些?

    我正在寻找一个好的基于角色的授权解决方案来与 Authlogic 一起使用 大家有什么好的建议吗 如果可能的话 请根据您的经验列出一些优点和缺点 Acl9 与 AuthLogic 配合得很好 http github com be9 acl9
  • AppBrain 的安装应用程序如何工作?

    AppBrain 拥有一款出色的新应用程序 可让您使用网络浏览器在手机上自动安装应用程序 类似于Chrome的推送 就他们而言 他们使用它让您直接在手机上安装应用程序 而无需提示 Engadget 有一个很好的视频展示了他们的系统 http
  • .NET - 通过 LAN 将可执行文件复制到另一台计算机并执行它

    我正在使用 NET 并疯狂地尝试找到任何有用的 API 让我可以通过 LAN 网络传输文件 当然是通过管理员凭据 然后在该计算机上执行它 我读过一些使用 WMI 的内容 但谷歌搜索 net WMI 复制文件 或 net WMI 执行文件 对
  • 在 WHERE 子句中引用列别名

    SELECT logcount logUserID maxlogtm DATEDIFF day maxlogtm GETDATE AS daysdiff FROM statslogsummary WHERE daysdiff gt 120
  • 相对于最大值的内连接表

    我正在尝试编写一个 MySQL 查询 在其中提取卖家的信息和她最受欢迎的产品 这是由页面浏览量最多的产品决定的 即MAX page views 不过 下面的查询只是随机抽取一个产品 而不是页面浏览量最多的产品 SELECT seller i
  • 如何使用 java Apache POI 库从 XLSX 文件中的特定单元格获取值

    我正在编写一个 Java 程序 使用 Apache POI 库从 excel 工作表 具有 XLSX 扩展名 读取数据 我能够迭代所有单元格并获取所有值 但我无法获得特定的单元格值 例如 E10 有什么办法可以做到这一点吗 请参阅下面我用于
  • 以 UTF-8 格式显示法语重音字符时出现问题

    我正在开发一个用 CakePHP 构建的法语网站 我尝试了多种函数来尝试将文本转换为 UTF 8 并正确显示 但到目前为止还没有成功 任何重音字母都显示为带问号的黑色菱形 当我将浏览器中的字符集更改为 ISO 8859 1 时 它们确实显示
  • 如何以编程方式(在 shell 脚本中)确定是否有更改? [复制]

    这个问题在这里已经有答案了 我正在尝试创建一个 Bash 脚本 该脚本知道当前工作目录中是否有更改 我知道 git status 返回类似 无需提交任何内容 的消息 我想要的是将变量定义为 true 或 false 这个布尔值会告诉我是否有
  • OPencv SVM预测概率

    我正在使用 BOW 模型和 SVM 开发一个图像分类项目 我想找出SVM预测概率 但opencv svm中没有这样的函数 有什么办法可以做到这一点吗 我想找出 n 类 SVM 的预测概率 不 你不能用 CvSVM 做到这一点 OpenCV
  • 无法在非托管代码中使用托管事件/对象错误 c3265、c2811

    我在 C CLI 项目中使用的本机 C 库引发事件 给我结果 如果我尝试通过扩展非托管事件来处理该事件 它会说 ref 类只能扩展 ref 类 然后 我尝试创建一个本机事件 但在其中包含托管对象来收集结果 但出现错误无法在非托管类中声明托管
  • 用平滑样条替换所有 NA

    以下是示例数据 大约 8000 行数据 如何用平滑样条拟合其余数据的值替换所有 NA Date Max Min Rain RHM RHE 4 24 1981 35 9 24 7 0 0 71 37 4 25 1981 36 8 22 8 0
  • ProcessInfo 和 RedirectStandardOutput

    我有一个应用程序 它在命令窗口中调用另一个进程 并且该进程更新了输出到控制台窗口的统计信息 我认为这是一个相当简单的操作 但我似乎无法让它发挥作用 我错过了什么吗 string assemblyLocation Assembly GetEx
  • R 中的错​​误:不一致的参数。不对?

    这是我的代码 define likelihood function including an intercept constant in the function lltobit lt function b x y sigma lt b 3
  • 具有属性的列表的 XML 序列化

    我在另一个列表中有一个列表 具有变体的产品 我希望父列表具有设置的属性 只是一个id and a name 所需输出