XSLT преобразует дерево документа в другое дерево документа. Как я знаю, нет прямых соединителей с MySQL, которые могли бы вставить преобразованные данные в MYSQL.
Другим вариантом может быть создание XML, который может быть импортирован MySQL.
mysqldump
Утилита принимает опцию --xml, которая позволяет выгружать данные в формате XML (чтобы вы могли преобразовать свои данные в формат). К сожалению, загрузка данных из файла обратно - это хитрость, которая доступна только из MySQL 5.1 . В MySQL 6.0.3 появился новый оператор LOAD XML, который можно использовать для этой цели.
Я считаю, что задачу легко решить, прочитав XML с помощью XML-ридера и вставив строку данных за строкой, используя стандартные коннекторы базы данных на любом современном языке программирования.
UPD
xsl может выглядеть следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="breakfast_menu">
<xsl:apply-templates mode="insert-to-food" select="food" />
<xsl:apply-templates mode="insert-to-breakfast_menu" select="food" />
</xsl:template>
<xsl:template mode="insert-to-food" match="food">
<xsl:text>INSERT INTO food(</xsl:text>
<xsl:number />
<xsl:text>, '</xsl:text>
<xsl:value-of select="name" />
<xsl:text>', '</xsl:text>
<xsl:value-of select="price" />
<xsl:text>', '</xsl:text>
<xsl:value-of select="description" />
<xsl:text>', </xsl:text>
<xsl:value-of select="calories" />
<xsl:text>);
</xsl:text>
</xsl:template>
<xsl:template mode="insert-to-breakfast_menu" match="food">
<xsl:text>INSERT INTO breakfast_menu(1, </xsl:text>
<xsl:number />
<xsl:text>);
</xsl:text>
</xsl:template>
</xsl:stylesheet>