我正在为客户开发一个项目,该项目涉及连接到 API 并使用它返回的数据。API 无法更改,因为许多现有系统都依赖它。
这就是问题所在。XML 标记之一(类别)有几个子类别。但是指定类别的包装标签在每个级别都被命名为不同的东西。
这是一个例子。
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<Response>
<Category>
<ID>Some ID</ID>
<Name>Some name</Name>
<SubCatLevel2> <!-- This is a category tag - notice how it is named differently. -->
<Category>
<ID>Some ID</ID>
<Name>Some name</Name>
<SubCatLevel3> <!-- This is a category tag - notice how it is named differently. -->
<Category>
<ID>Some ID</ID>
<Name>Some name</Name>
<SubCatLevel4> <!-- This is a category tag - notice how it is named differently. -->
<Category>
<ID>Some ID</ID>
<Name>Some name</Name>
</Category>
</SubCatLevel4>
</Category>
<Category>
<ID>Some ID</ID>
<Name>Some name</Name>
<SubCatLevel4> <!-- This is a category tag - notice how it is named differently. -->
<Category>
<ID>Some ID</ID>
<Name>Some name</Name>
</Category>
</SubCatLevel4>
</Category>
</SubCatLevel3>
</Category>
</SubCatLevel2>
</Category>
<Category>
<ID>3</ID>
<Name>Trailere</Name>
<ToolCount>1</ToolCount>
<SubCatLevel2/>
</Category>
</Response>
所以问题是 - 我如何(使用XmlSerializer
)通过使用属性来反序列化这个 XML?我希望该类别有一个子类别列表,知道类别树的最大深度为 4,并且它的可能元素名称是“SubCatLevel1”、“SubCatLevel2”、“SubCatLevel3”和“SubCatLevel4”。
编辑
我能以XmlAnyElementAttribute
某种方式使用吗?