XSLT идеально подходит для преобразования XML автоматически, при условии, что вы изучаете декларативный язык программирования.
Когда новый XML составляет 80%, аналогичный существующему XML, начать с тождественным преобразованием,
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
, который будет копировать XML одинаково.
Затем добавьте шаблоны, чтобы описать, как новый XML должен отличаться от старого. Например, добавление этого шаблона к трансформации идентичности,
<xsl:template match="not-needed"/>
предотвратит not-needed
элементов от превращения в новый XML.
И этот шаблон,
<xsl:template match="old-element">
<new-element/>
</xsl:template>
заменит old-element
(и все под ним) с new-element
.
Или этот шаблон,
<xsl:template match="old-element">
<new-element>
<xsl:apply-templates select="@*|node()"/>
</new-element>
</xsl:template>
заменит old-element
(но не всё под ним) с new-element
.
Обычно это позволяет создавать преобразования на основе идентификации таким образом за считанные минуты. К счастью, этот вид мощности распространяется и на более сложные преобразования, а также с таким же высоким соотношением результатов и усилий.
См. Также: How to get started with XSLT?