Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование XML в SQL / 3 сообщений из 3, страница 1 из 1
25.10.2009, 17:46
    #36271256
ВикторЛи
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в SQL
Как реализовать универсальное средство для перегонки xml файлов в MySQL?
При этом используя Java и стандартный парсер.
Другими словами, необходимо написать приложение на Java, которому на вход подается пара файлов:
xml файл с данными
файл-натройка, в котором указано какие элементы в какие поля конвертить.
А на выходе получаем текстовый файл с SQL скриптом, для занесения этих данных в БД MySql.
Кто-нибудь имеет представление как это реализовать?
lvk89@mail.ru
...
Рейтинг: 0 / 0
25.10.2009, 19:41
    #36271345
слоненок
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в SQL
ВикторЛи, вам бы эту тему лучше в раздел Java перенести т.к. самого XML будет мало.
...
Рейтинг: 0 / 0
28.10.2009, 16:12
    #36277762
XT84
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в SQL
слоненок,

Почему мало?

А так (и можно sh/bat скриптиками эти самые XML туда сюда гонять)?

Пример XML:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="UTF-8" ?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="forma13.xsd" generated="2009-06-30T14:39:27">
    <For13>
        <F1> 1 . 0 </F1>
        <F2> 11 </F2>
        <F3> 10 </F3>
        <F4> 0 </F4>
        <F5> 1 </F5>
        <F6> 0 </F6>
        <F7> 0 </F7>
        <F8> 0 </F8>
        <F9> 0 </F9>
        <F10> 0 </F10>
        <F11> 0 </F11>
        <F12> 0 </F12>
        <LPU> 123 </LPU>
    </For13>
</dataroot>

Пример шаблона на формирование SQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:param name="is-table-exist">true</xsl:param>
    <xsl:param name="table-name">table_name</xsl:param>
    <xsl:output method="text" encoding="UTF-8" indent="no"/>

    <xsl:template match="/">
        <xsl:if test="$is-table-exist = 'false'"><xsl:call-template name="create-table" /></xsl:if>
        <xsl:apply-templates />
    </xsl:template>
   
    <!--
        Чем плох этот шаблон, так это тем, что
        выборка полей идет по порядку - т.е. важно, чтобы в XML
        соблюдался порядок тэгов
    -->
    <xsl:template match="dataroot/child::*">
        INSERT INTO <xsl:value-of select="$table-name"/>
        <xsl:call-template name="table-cols" />
        VALUES
        (<xsl:for-each select="child::*">
            <xsl:choose>
                <xsl:when test="name(.)='LPU'"><xsl:value-of select="."/></xsl:when>
                <xsl:otherwise><xsl:value-of select="."/><xsl:text>,</xsl:text></xsl:otherwise>
            </xsl:choose>
        </xsl:for-each>)
    </xsl:template>
   
    <xsl:template name="table-cols">
        (F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, LPU)<xsl:text></xsl:text>
    </xsl:template>
   
    <xsl:template name="create-table">
        -- Вот здесь код создания таблички
    </xsl:template>
</xsl:stylesheet>

Сам подобным пользуюсь, вполне устраивает :)
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование XML в SQL / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]