powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите распарсить XML файл из скрипта на VBScript
7 сообщений из 7, страница 1 из 1
Помогите распарсить XML файл из скрипта на VBScript
    #34948489
pazdak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача:
Есть 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
Помогите распарсить XML файл из скрипта на VBScript
    #34948562
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поищи в мсдне selectSingleNode
...
Рейтинг: 0 / 0
Помогите распарсить XML файл из скрипта на VBScript
    #34949895
pazdak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
Начало положено, правда еще ничего толком не понятно, но всеже:

Код: 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
Помогите распарсить XML файл из скрипта на VBScript
    #34951868
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если будешь вызывать не selectSingleNode, а selectNodes, получишь всю коллекцию выбранных нодов вместо одного лишь первого, читай про selectNodes. И обрати внимание, что метод selectSingleNode может применён к любому узлу, не только ко всему документу. Соответственно, адресация будет относительная, читай про XPath.
...
Рейтинг: 0 / 0
Помогите распарсить XML файл из скрипта на VBScript
    #34954182
pazdak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите распарсить XML файл из скрипта на VBScript
    #34954260
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Помогите распарсить XML файл из скрипта на VBScript
    #34955316
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pazdakЧитал я и про XPath и про selectNodes, но так и не понял до конца про относительную адресацию, точнее что это и как записывается понятно, а вот как узнать, где я сейчас нахожусь не понятно.в смысле??? Какую ноду взял, там и находишься!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите распарсить XML файл из скрипта на VBScript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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