Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Обработка XML

Ответить
Настройки темы
VBS/WSH/JS - Обработка XML

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уважаемые. Вопрос.
Есть xml, которая выглядит вот так:

Код: Выделить весь код
<?xml version="1.0" encoding="Windows-1251"?>
<root>
	<id>3904</id>
	<sos_login>848hRRB9Th</sos_login>
	<pfr_xmls>
		<pfr_xml code="014-001" no="014-001-052241">

<регистрационнаяИнформация>
	<датаВремяФормирования>2011-11-09T13:05:05</датаВремяФормирования>
	<списокСубъектов>
		<субъект идентификаторСубъекта="014-001-052241" типСубъекта="АбонентСЭД" имя="Name of firm">
			<списокСертификатов типПодписанта="руководитель">
				<сертификат активный="true">
MIIEZjCCBB
				</сертификат>
			</списокСертификатов>
		</субъект>
	</списокСубъектов>
</регистрационнаяИнформация>


		</pfr_xml>
		<pfr_xml code="014-004" no="014-004-012910">

<регистрационнаяИнформация>
	<датаВремяФормирования>2011-11-09T13:05:05</датаВремяФормирования>
	<списокСубъектов>
		<субъект идентификаторСубъекта="014-004-012910" типСубъекта="АбонентСЭД" имя="Name of Firm">
			<списокСертификатов типПодписанта="руководитель">
				<сертификат активный="true">
MIIEZjCCBB
				</сертификат>
			</списокСертификатов>
		</субъект>
	</списокСубъектов>
</регистрационнаяИнформация>
		</pfr_xml>
	</pfr_xmls>
</root>
Иногда в теге <pfr_xmls> может быть не две, как сейчас. а три сертификата. А то и один.
Надо весь текст от тега <РегистрационнаяИнформация> закинуть в отдельную XML и назвать его... Не важно как. А поскольку тут два сертификата, то надо создать две XML.
Соответственно, вытащив из нее имя компании и серийный номер.

У меня пока временно выглядит код вот так:


Код: Выделить весь код
Dim DOMDocument1, Node1, tmpStr1
Set DOMDocument1 = CreateObject("MSXML2.DOMDocument")
With DOMDocument1
    .Load "C:\XML\" & basenameNEW
    if .parseError.reason <> "" Then
        MsgBox .parseError.reason,vbCritical
        WScript.Quit
    End if
    Set currNode = domdocument1.documentElement
	
	login = currNode.childNodes(1).text 'Копирую значение Логина
	WScript.Echo currNode.childNodes(1).text
	'XML1 = currNode.childNodes(2).text
	'WScript.Echo currNode.childNodes(2).text
End With

'ТУТ ДОЛЖЕН ИДТИ ВРОДЕ КАК ЦИКЛ FOR EACH. 
'ТОЛЬКО НЕ ПОНИМАЮ С КАКИМИ ПАРАМЕТРАМИ.


'Ниже сейчас разбираю одну XML. Вернее придется разобрать один из сертификатов.Но в цикле.
'Option Explicit
Dim DOMDocument, Node, tmpStr
Set DOMDocument = CreateObject("MSXML2.DOMDocument")

'Далее надо загрузить XML с первым сертификатом.

With DOMDocument
    .Load "C:\XML\" & basename 'Я так понимаю, это не надо. 
    if .parseError.reason <> "" Then
        MsgBox .parseError.reason,vbCritical
        WScript.Quit
    End if
    With .documentElement.SelectSingleNode("списокСубъектов")
        tmpStr = ""
        For Each Node in .SelectNodes("pfr_xmls")
            'tmpStr = tmpStr & "Идентификатор субъекта: " & Node.GetAttribute("идентификаторСубъекта") & vbCrlf
            'tmpStr1 = tmpStr & "Тип субъекта: " & Node.GetAttribute("идентификаторСубъекта") & vbCrlf
            'tmpStr2 = tmpStr & "имя: " & Node.GetAttribute("имя") & vbCrlf
			sNomer = Node.GetAttribute("идентификаторСубъекта")
            firm = Node.GetAttribute("имя")
            
		Next
		firm = Replace(firm,"'","")
		firm = Replace(firm,"""", "")
		firm = Replace(firm,"»", "")
		firm = Replace(firm,"«", "")
	
    End With
End With
Грубо говоря, структура такая:
- Скачивание XML. (есть)
- Считываем поле login. (есть)
- Далее циклом проходим FOR EACH по всем <pfr_xmls> :
_______ Сохраняем и формируем новый XML-файл, который начинается только с тегов <РегистрационнаяИнформация> с примерно таким же id и дописываем через "_" цифру по счету. (Пример: id 4556. Значит наши новые XML будут 4556_1, 4556_2)
_______ Вытаскиваем данные - номер и имя компании.
_______ Далее идет отсылание на почту (есть).

Основная проблема, не знаю немного структуру работы с XMLDOM

Отправлено: 17:57, 09-11-2011

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Обработка XML

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
7 / 2008 R2 - dot1x + xml profile + unattend.xml HaeMHuK Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 0 20-10-2011 12:43
PHP и XML | Обработка неалфавитных символов Coutty Вебмастеру 6 17-12-2008 10:42
[решено] проверка XML-файла на соответствие XML schema в IE 6 и Firefox 2 dimait Вебмастеру 4 23-08-2007 02:02
XML zelo Общий по Linux 9 06-11-2006 13:39
xml ptt Программирование и базы данных 1 19-12-2003 19:37




 
Переход