API に接続し、返されるデータを使用するクライアントのプロジェクトに取り組んでいます。多くの既存のシステムが API に依存しているため、API を変更することはできません。
これが問題です。XML タグの 1 つ (Category) には、いくつかのサブカテゴリがあります。ただし、カテゴリを指定するラッピング タグは、レベルごとに異なる名前が付けられています。
これが例です。
<?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
か?