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

Почему мало?

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


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