Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите распарсить XML файл из скрипта на VBScript / 7 сообщений из 7, страница 1 из 1
19.11.2007, 12:16
    #34948489
pazdak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить XML файл из скрипта на VBScript
Задача:
Есть XML файл, выдаваемый программой Everest (инвентарная информация по компьютеру)
необходимо наваять VBScript, который будет записывать требуемую (выборочную) информацию из XML в базу MsSQL
Собственно опыта работы с XML нет, поэтому пока не могу въехать, как обрабатывать XML из VBScript
Поиск примеров обработки XML ничего стоящего не дал, может конечно не там искал...

Поэтому обращаюсь к Вам за помощью.
Помогите, как можно получить свойства (Product, Version и т.д.), например по Motherboard из данного примера?

Фрагмент XML файла:
Код: 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.
37.
38.
39.
40.
41.
42.
<?xml version="1.0" encoding="ISO-8859-1"?>
<Report><Lang>en</Lang>
<Page><Title>Report</Title><Icon> 112 </Icon>
<Item><Title>Version</Title><Icon> 112 </Icon><ID> 257 </ID><Value>EVEREST v4. 00 . 975 /EN</Value></Item>
<Item><Title>Benchmark Module</Title><Icon> 112 </Icon><ID> 266 </ID><Value> 2 . 1 . 184 . 0 </Value></Item>
<Item><Title>Homepage</Title><Icon> 116 </Icon><ID> 259 </ID><Value>http://www.lavalys.com/</Value></Item>
<Item><Title>Report Type</Title><Icon> 91 </Icon><ID> 260 </ID><Value>Command-line</Value></Item>
<Item><Title>Computer</Title><Icon> 46 </Icon><ID> 261 </ID><Value>TESTTT</Value></Item>
<Item><Title>Generator</Title><Icon> 47 </Icon><ID> 262 </ID><Value>UserA</Value></Item>
<Item><Title>Operating System</Title><Icon> 38 </Icon><ID> 263 </ID><Value>Microsoft Windows XP Professional  5 . 1 . 2600 </Value></Item>
<Item><Title>Date</Title><Icon> 64 </Icon><ID> 264 </ID><Value> 2007 - 11 - 16 </Value></Item>
<Item><Title>Time</Title><Icon> 131 </Icon><ID> 265 </ID><Value> 14 : 41 </Value></Item>
</Page>
<Page><Title>DMI</Title><Icon> 46 </Icon><MenuTitle>Computer</MenuTitle><MenuIcon> 46 </MenuIcon>
<Device><Title>BIOS</Title><Icon> 27 </Icon>
<Group><Title>BIOS Properties</Title><Icon> 27 </Icon>
<Item><Title>Vendor</Title><Icon> 27 </Icon><ID> 2561 </ID><Value>Intel Corp.</Value></Item>
<Item><Title>Version</Title><Icon> 27 </Icon><ID> 2562 </ID><Value>BF86510A.86A. 0060 .P16. 0404121116 </Value></Item>
<Item><Title>Release Date</Title><Icon> 27 </Icon><ID> 2563 </ID><Value> 04 / 12 / 2004 </Value></Item>
<Item><Title>Size</Title><Icon> 27 </Icon><ID> 2564 </ID><Value> 512  KB</Value></Item>
<Item><Title>Boot Devices</Title><Icon> 27 </Icon><ID> 2565 </ID><Value>Floppy Disk, Hard Disk, CD-ROM, ATAPI ZIP, LS- 120 </Value></Item>
<Item><Title>Capabilities</Title><Icon> 27 </Icon><ID> 2566 </ID><Value>Flash BIOS, Shadow BIOS, Selectable Boot, EDD, BBS</Value></Item>
<Item><Title>Supported Standards</Title><Icon> 27 </Icon><ID> 2567 </ID><Value>DMI, APM, ACPI, PnP</Value></Item>
<Item><Title>Expansion Capabilities</Title><Icon> 27 </Icon><ID> 2568 </ID><Value>PCI, AGP, USB</Value></Item>
</Group>
</Device>
<Device><Title>System</Title><Icon> 46 </Icon>
<Group><Title>System Properties</Title><Icon> 46 </Icon>
<Item><Title>Universal Unique ID</Title><Icon> 46 </Icon><ID> 2573 </ID><Value>8B2C3E32-DF1B11D8-8CC7000C-6E0802C3</Value></Item>
<Item><Title>Wake-Up Type</Title><Icon> 46 </Icon><ID> 2574 </ID><Value>Power Switch</Value></Item>
</Group>
</Device>
<Device><Title>Motherboard</Title><Icon> 42 </Icon>
<Group><Title>Motherboard Properties</Title><Icon> 42 </Icon>
<Item><Title>Manufacturer</Title><Icon> 42 </Icon><ID> 2575 </ID><Value>Intel Corporation</Value></Item>
<Item><Title>Product</Title><Icon> 42 </Icon><ID> 2576 </ID><Value>D865GLC</Value></Item>
<Item><Title>Version</Title><Icon> 42 </Icon><ID> 2577 </ID><Value>AAC28906- 408 </Value></Item>
<Item><Title>Serial Number</Title><Icon> 42 </Icon><ID> 2578 </ID><Value>BTLC43011936</Value></Item>
</Group>
</Device>
</Page>
</Report>
...
Рейтинг: 0 / 0
19.11.2007, 12:37
    #34948562
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить XML файл из скрипта на VBScript
поищи в мсдне selectSingleNode
...
Рейтинг: 0 / 0
19.11.2007, 18:05
    #34949895
pazdak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить XML файл из скрипта на VBScript
Спасибо!
Начало положено, правда еще ничего толком не понятно, но всеже:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
set xmlbody = createobject("Microsoft.XMLDOM")
xmlbody.Async="false"
xmlbody.load("00111133FA97.xml")

Set compValue = xmlbody.selectsingleNode("/Report/Page/Group/Item[Title = 'Computer Name']/Value")
Set sysValue = xmlbody.selectsingleNode("/Report/Page/Group/Item[Title = 'System Memory']/Value")

WScript.Echo "=" & compValue.text
WScript.Echo "=" & sysValue.text 

Вопрос: можно ли перейти к следующему элементу после selectsingleNodes?
Например, после этой команды считать следующий:
Код: plaintext
Set optionList = xmlbody.selectsingleNodes("/Report/Page/Group")
...
Рейтинг: 0 / 0
20.11.2007, 13:58
    #34951868
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить XML файл из скрипта на VBScript
если будешь вызывать не selectSingleNode, а selectNodes, получишь всю коллекцию выбранных нодов вместо одного лишь первого, читай про selectNodes. И обрати внимание, что метод selectSingleNode может применён к любому узлу, не только ко всему документу. Соответственно, адресация будет относительная, читай про XPath.
...
Рейтинг: 0 / 0
21.11.2007, 10:12
    #34954182
pazdak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить XML файл из скрипта на VBScript
maXmo
Спасибо за помощь.

Читал я и про XPath и про selectNodes, но так и не понял до конца про относительную адресацию, точнее что это и как записывается понятно, а вот как узнать, где я сейчас нахожусь не понятно.

И еще почему-то в VBS с ошибкой вылетает строка:
Код: plaintext
Set xmlbody.setProperty "SelectionLanguage", "XPath"
требует знак "="
1.vbs(7, 25) Microsoft VBScript compilation error: Expected '='

Очень понравился справочный ресурс:
http://www.devguru.com/technologies/xml_dom/15603.asp
...
Рейтинг: 0 / 0
21.11.2007, 10:28
    #34954260
qu-qu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить XML файл из скрипта на VBScript
pazdak... И еще почему-то в VBS с ошибкой вылетает строка:
Код: plaintext
Set xmlbody.setProperty "SelectionLanguage", "XPath"
требует знак "="
1.vbs(7, 25) Microsoft VBScript compilation error: Expected '='
...
Либо Set выкинь из выражения (это признак присвоения объектной переменной, потому он и ждет = для своей "правой части"), либо делай вызов именованых свойств через коллекцию xmlbody.Properties ("SelectionLanguage") = "XPath" (для VBScript это прокатит).
...
Рейтинг: 0 / 0
21.11.2007, 14:00
    #34955316
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите распарсить XML файл из скрипта на VBScript
pazdakЧитал я и про XPath и про selectNodes, но так и не понял до конца про относительную адресацию, точнее что это и как записывается понятно, а вот как узнать, где я сейчас нахожусь не понятно.в смысле??? Какую ноду взял, там и находишься!
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите распарсить XML файл из скрипта на VBScript / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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