2016-03-23 5 views
1

У меня есть настольное приложение, которое принимает XML-файл в качестве ввода. Я должен создать новый XML-файл, когда новые функции будут введены в приложение.Автоматизация преобразования XML

Формат нового XML на 80% похож на существующий. Следовательно, автоматизация этого XML сократит мое время на 80% для нового улучшения.

Я уже думал о XSD, но я не знаю, правильно это или нет.

Или что-то еще возможно для автоматизации преобразования XML?

ответ

1

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?

Смежные вопросы