 |
|
Поиск и копирование текста из файла
Ребята. Вопрос.
Есть строка в XML файле :
Код:
<субъект идентификаторСубъекта="002-871-100318" типСубъекта="АбонентСЭД" имя="ООО 'Компенсатор'">
Как вытащить идентификатор субъекта и имя компании?
Имеется ввиду присвоить эти данные в какие нить переменные, откуда я потом их смогу использовать.
С самого начала идентификатор субъекта вытаскивал при помощи позиции символа:
Код:
Set objFSO= WScript.CreateObject("Scripting.FileSystemObject")
Set txtFile = objFSO.OpenTextFile("C:\XML\" & basename)
Do While Not txtFile.AtEndOfStream
ReadLineTXT = txtFile.ReadLINE
If InStr(ReadLineTXT, "идентификаторСубъекта=""") Then
sNomer = mid(readlinetxt, 37, 14)
wscript.echo sNomer
Exit Do
End If
Loop
txtFile.Close
А вот с компании стало потруднее, поскольку каждый раз имя компании по длине менялось.
Помогите пожалуйста.
P.S.
Сама XML с начала выглядит так:
Код:
<?xml version="1.0" encoding="Windows-1251"?>
<регистрационнаяИнформация>
<датаВремяФормирования>2011-10-31T15:49:58</датаВремяФормирования>
<списокСубъектов>
<субъект идентификаторСубъекта="002-871-100318" типСубъекта="АбонентСЭД" имя="ООО 'Компенсатор'">
<списокСертификатов типПодписанта="руководитель">
<сертификат активный="true">
|
Сделал неиного сам. Вот что получилось у меня. Но есть вопрос:
Код:
Dim DOMDocument, Node, tmpStr
Set DOMDocument = CreateObject("MSXML2.DOMDocument")
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("субъект")
sNomer = Node.GetAttribute("идентификаторСубъекта")
firm = Node.GetAttribute("имя")
MsgBox sNomer
MsgBox firm
Next
End With
End With
В поле имя иногда могут быть кавычки. А мне надо, что там были только буквы безо всяких кавычек.
Как мне сделать замену символов(коротко - удалить):
'
"
»
«
|
Разобрался. Сделал вот так :
Код:
firm = Replace(firm,"'","")
firm = Replace(firm,"""", "")
firm = Replace(firm,"»", "")
firm = Replace(firm,"«", "")
Корректировка не нужна?
|
Время: 18:19.
© OSzone.net 2001-