VB и XML

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sergey_K
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.08.2006 (Ср) 14:18

VB и XML

Сообщение Sergey_K » 02.08.2006 (Ср) 15:18

Народ помогите!!!
есть таблица в XML мне ее надо открыть с помощью VB6, и потом запихнуьб в базу.И вообще как открыть XMLфайл в табличном виде


Заранее Спасибо

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.08.2006 (Ср) 15:23

никак, если только он не RowsetSchema (xml сохранненный рекордсет ADO)

или писать ручками парсер через MSXML2

Sergey_K
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.08.2006 (Ср) 14:18

Сообщение Sergey_K » 02.08.2006 (Ср) 15:38

а как это проверить, просто мне дали только XMLфайл?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 02.08.2006 (Ср) 15:45

Ну, надо структуру базы знать.

Но в общем виде это будет примерно так:

Скажем, мы импортим в базу XML вот такой структуры:

Код: Выделить всё
<?xml version="1.0"?>
<root>
<item name="Item1" qty="22">
<item name="Item2" qty="17"/>
<item name="Item3" qty="20"/>
<item name="Item4" qty="19"/>
</item>
<item name="Item5" qty="25"/>
</root>

Импорт будет такой:
Код: Выделить всё
dim xml as new msxml2.domdocument
dim rst as dao.recordset

public sub importSingleNode(node as msxml2.ixmldomnode)
with rst
.addnew
.fields("name")=n.attributes.getNamedItem("name")
.fields("qty")=n.attributes.getNamedItem("qty")
.update
end with
end sub

public sub importXML(node as msxml2.ixmldomnode)
dim x msxml2.ixmldomnode
if not (node is xml.documenElement) then importSingleNode(node)
for each x in node.childNodes
importSingleNode(x)
if x.childNodes.length>0 then importXML(x)
next x
end sub

public sub main()
xml.async=false
xml.load "myxml.xml"
dim db as dao.database
set db=opendatabase("mybase.mdb")
set rst=db.tabledefs("table1").openrecordset
importXML(xml.documentElement)
rst.close
db.close
end sub

Последний раз редактировалось RayShade 02.08.2006 (Ср) 15:46, всего редактировалось 1 раз.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.08.2006 (Ср) 15:46

Вот такой заголовок должен быть

Код: Выделить всё
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
   xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
   xmlns:rs='urn:schemas-microsoft-com:rowset'
   xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 02.08.2006 (Ср) 16:02

[OFFTOP]а каким чудом у Sergey K одно сообщение, тогда как минимум в этом топике их 2? Что-то с форумом не так...[/OFFTOP]
Весь мир матрица, а мы в нем потоки байтов!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 02.08.2006 (Ср) 16:02

никак, если только он не RowsetSchema (xml сохранненный рекордсет ADO)
Наверное с помошью xslt можно любую табличную структуру привести к адошной.
Лучший способ понять что-то самому — объяснить это другому.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.08.2006 (Ср) 16:20

точно, можно: :lol:
Вложения
rs.rar
(472 байт) Скачиваний: 50

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 02.08.2006 (Ср) 16:27

Выложил в кирпичи свой конвертор для ADODB.Recordset XML

http://bbs.vbstreets.ru/viewtopic.php?p=6622064#6622064


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 62

    TopList