Войти

Показать полную графическую версию : [решено] Поиск и копирование текста из файла


KaKTuZ49
02-11-2011, 16:01
Ребята. Вопрос.
Есть строка в 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">

KaKTuZ49
03-11-2011, 12:40
Сделал неиного сам. Вот что получилось у меня. Но есть вопрос:

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

В поле имя иногда могут быть кавычки. А мне надо, что там были только буквы безо всяких кавычек.
Как мне сделать замену символов(коротко - удалить):
'
"
»
«

KaKTuZ49
03-11-2011, 13:38
Разобрался. Сделал вот так :

firm = Replace(firm,"'","")
firm = Replace(firm,"""", "")
firm = Replace(firm,"»", "")
firm = Replace(firm,"«", "")

Корректировка не нужна?




© OSzone.net 2001-2012