Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Поиск и копирование текста из файла (http://forum.oszone.net/showthread.php?t=219567)

KaKTuZ49 02-11-2011 16:01 1787336

Поиск и копирование текста из файла
 
Ребята. Вопрос.
Есть строка в 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 1787968

Сделал неиного сам. Вот что получилось у меня. Но есть вопрос:

Код:

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 1787996

Разобрался. Сделал вот так :

Код:

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

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


Время: 18:19.

Время: 18:19.
© OSzone.net 2001-