Есть ли способ взять файл XML, который выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<spMyStoredProc xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo">
<StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo/spMyStoredProc">
<Item>1</Item>
<Property>something</property>
</StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo/spMyStoredProc">
<Item>2</Item>
<Property>something</property>
</StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo/spMyStoredProc">
<Item>3</Item>
<Property>something</property>
<Group>1</Group>
</StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo/spMyStoredProc">
<Item>4</Item>
<Property>something</property>
<Group>1</Group>
</StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo/spMyStoredProc">
<Item>5</Item>
<Property>something</property>
<Group>2</Group>
</StoredProcedureResultSet0>
<StoredProcedureResultSet0 xmlns="http://schemas.microsoft.com/Sql/2008/05/TypedProcedures/dbo/spMyStoredProc">
<Item>6</Item>
<Property>something</property>
<Group>2</Group>
</StoredProcedureResultSet0>
</StoredProcedureResultSet0>
<ReturnValue>0</ReturnValue>
</spMyStoredProc>
Выходите в таком формате:
<MyRequests>
<Request>
<Item ID="1" Property="Something" />
</Request>
<Request>
<Item ID="2" Property="Something" />
</Request>
<Request GroupID="1">
<Item ID="3" Property="Something" />
<Item ID="4" Property="Something" />
</Request>
<Request GroupID="2">
<Item ID="5" Property="Something" />
<Item ID="6" Property="Something" />
</Request>
</MyRequests>
Я близок к тому, чтобы просто использовать прямую карту от исходной схемы до места назначения, но она не группирует вместе элементы, которые имеют в ней один и тот же идентификатор группы.
По сути, то, что я могу получить без функтоидов, это:
<MyRequests>
<Request>
<Item ID="1" Property="Something" />
</Request>
<Request>
<Item ID="2" Property="Something" />
</Request>
<Request GroupID="1">
<Item ID="3" Property="Something" />
</Request>
<Request GroupID="1">
<Item ID="4" Property="Something" />
</Request>
<Request GroupID="2">
<Item ID="5" Property="Something" />
</Request>
<Request GroupID="2">
<Item ID="6" Property="Something" />
</Request>
</MyRequests>