Я создаю приложение, которое анализирует XML и извлекает некоторые данные.Каждый узел xml указывает данные (const), имя столбца набора записей для получения данных из (var), подмножество возможных значений данных в зависимости от некоторых условий (enum) и другие.Он также может указывать, наряду с данными, формат, в котором данные должны быть показаны пользователю.
Дело в том, что для каждого типа узла мне нужно по-разному обрабатывать значения и выполнять некоторые актиноны, поэтому для каждого узла мне нужно сохранить возвращаемое значение во временной переменной для последующего форматирования.Я знаю, что могу отформатировать его прямо здесь и вернуть, но это будет означать повторяться, и я ненавижу это делать.
Итак, вопрос: как я могу сохранить возвращаемое значение во временной переменной,избегая упаковки / распаковки, когда тип неизвестен, и я не могу использовать универсальные шаблоны?
PS : я разрабатываю синтаксический анализатор, схему XML и представление, которое будет заполнять набор записейпоэтому все изменения правдоподобны.
Обновление
Я не могу опубликовать ни код, ни значения XML, но это структура XML и фактические теги.
<?xml version='1.0' encoding='utf-8'?>
<root>
<entity>
<header>
<field type="const">C1</field>
<field type="const">C2</field>
<field type="count" />
<field type="sum" precision="2">some_recordset_field</field>
<field type="const">C3</field>
<field type="const">C4</field>
<field type="const">C5</field>
</header>
<detail>
<field type="enum" fieldName="some_recordset_field">
<match value="0">M1</match>
<match value="1">M2</match>
</field>
<field type="const">C6</field>
<field type="const">C7</field>
<field type="const">C8</field>
<field type="var" format="0000000000">some_recordset_field</field>
<field type="var" format="MMddyyyy">some_recordset_field</field>
<field type="var" format="0000000000" precision="2">some_recordset_field</field>
<field type="var" format="0000000000">some_recordset_field</field>
<field type="enum" fieldName ="some_recordset_field">
<match value="0">M3</match>
<match value="1">M4</match>
</field>
<field type="const">C9</field>
</detail>
</entity>
</root>