XSLT - Хитрое Преобразование

У меня проблемы с XSLT-преобразованием фрагментов XML. Исходный XML выглядит так:

<XXX>
    <Name>Sample</Name>
    <MMM>
        <AAA ID="A"/>
        <MMM>
            <BBB ID="B"/>
            <MMM>
                <AA ID="C"/>
                <BB ID="D"/>
            </MMM>
        </MMM>
    </MMM>
</XXX>

Но это должно быть преобразовано в:

<XXX>
    <Name>Sample</Name>
    <MMM>
        <MMM>
            <MMM>
                <AAA ID="A"/>
                <BBB ID="B"/>
            </MMM>
            <AA ID="C"/>            
        </MMM>
        <BB ID="D"/>
    </MMM>
</XXX>

Правило простое, элемент MMM может иметь только два узла дочерних элементов. Если только один из этих узлов оказался другим MMM, он должен занимать первую позицию.

Использовать код легко, но эти фрагменты XML являются значениями для столбцов XML в базе данных SQL, и я хочу использовать SQL вместе с XSLT для обновления этих значений.

Любой указатель или предложения?

Ответы на вопрос(1)

Ваш ответ на вопрос