【发布时间】:2010-08-25 15:05:39
【问题描述】:
我正在尝试创建一个 XML 输出文件以导入另一个程序。我收到的示例 XML 文件如下所示:
<SalesOrder>
<OrderHeader>
<BillTo>
<EntityID>1234</EntityID>
</BillTo>
</OrderHeader>
<LineItemList>
<OrderLineComment>
<LineItemID>1</LineItemID>
</OrderLineComment>
<LineItem>
...
</LineItem>
<LineItem>
...
</LineItem>
<LineItem>
...
</LineItem>
...
</LineItemList>
</SalesOrder>
我有一个 C# 项目,它能够使用 XmlSerializer 输出这种类型的文件,但此部分除外:
<LineItemList>
<OrderLineComment>
<LineItemID>1</LineItemID>
</OrderLineComment>
LineItemList 部分只是一个 LineItem 列表,但在 LineItemList 的开头添加了这个不同的元素 OrderLineComment。
如果我将它表示为 LineItems 数组,那么它看起来是一样的,只是它缺少 OrderLineComment。如果我将其表示为包含 OrderLineComment 和 LineItems 数组的新对象 LineItemList,我会得到:
<LineItemList>
<OrderLineComment>
<LineItemID>1</LineItemID>
</OrderLineComment>
<LineItems>
<LineItem>
...
</LineItem>
...
</LineItems>
这有我想要的,除了它用<LineItems> 标记包装所有 LineItems,这也不是我想要的。
所以我想知道的是:
- 有没有办法通过 XmlSerializer 做到这一点?如果有,怎么做?
- 如果没有,并且我必须重写代码以使用 XmlSerializer 以外的其他东西,那么最好的方法是什么?为什么?
提前致谢。
【问题讨论】:
标签: c# xml xmlserializer