【发布时间】:2015-08-20 23:25:39
【问题描述】:
在反序列化 XML 文件时是否可以保持父子关系,其中每个父子文件都有一个唯一标识符。例如,如果“名称”标签始终包含唯一 ID,那么在以下 XML 中维护父子关系的最佳方法是:
<Building>
<Name>Bldg 1</Name>
<Room>
<Name>Room 1</Name>
<Table>
<Name>Table 1</Name>
</Table>
</Room>
</Building>
在类中,有一个属性来容纳“名称”标签中的父节点的文本值,以及父名称的标签。例如,名称为“Room 1”的“Room”标签将具有父节点名称的属性,即“Bldg 1”和父节点标签的属性,即“Building”。我无法控制架构,但这是数据格式的简化版本。
【问题讨论】:
-
是的,如何计划解析 XML。您打算使用反序列化还是打算使用其他方法?如果要为 tge XML 中的每个非叶标记(叶是字符串、int、DateTime 等对象)构建一个唯一类,则使用反序列化。如果您不需要类结构,您可以使用 XML Linq 等其他方法来反序列化 xml。
-
我还没有对 XML 文件做太多的工作,我还没有决定如何解析它。我计划反序列化为类,并且可能正在考虑实现一个实现 IXMLSerializable 接口的基类来调整读取和写入方法。从本质上讲,我有按照上述 XML 结构的数据,我想将这些数据反序列化为类以进行进一步操作,同时保持原始父子关系。不过,我对方向持开放态度。
标签: c# xml serialization parent-child