Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Поиск текста и его копирование Добавлено: 02.11.11 15:47  

Автор вопроса:  Олег
Ребята. Вопрос.
Есть строка в 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">

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 chialexus



ICQ: 321922 

Вопросов: 3
Ответов: 53
 Web-сайт: chialexus.narod.ru
 Профиль | | #1
Добавлено: 02.11.11 17:57
Зачем так извращаться?
Есть старый добрый DOM XML - http://script-coding.com/XMLDOMscripts.html

Ответить

Номер ответа: 2
Автор ответа:
 chialexus



ICQ: 321922 

Вопросов: 3
Ответов: 53
 Web-сайт: chialexus.narod.ru
 Профиль | | #2
Добавлено: 02.11.11 18:10
  1. Set objXML = CreateObject("Msxml2.DOMDocument.6.0")
  2.   objXML.async=false
  3.   objXML.Load ("XML_ФАЙЛ")
  4.   Set objNode = objXML.selectSingleNode("//субъект")
  5.   msgbox objNode.Attributes(0).Value 'идентификаторСубъекта
  6.   msgbox objNode.Attributes(1).Value 'типСубъекта
  7.   msgbox objNode.Attributes(2).Value 'имя
  8.   Set objNode =Nothing
  9.   Set objXML =Nothing

Ответить

Номер ответа: 3
Автор ответа:
 Олег



Вопросов: 4
Ответов: 10
 Профиль | | #3 Добавлено: 03.11.11 12:36
Я сделал вот так. Но есть вопрос:

  1. Dim DOMDocument, Node, tmpStr
  2. Set DOMDocument = CreateObject("MSXML2.DOMDocument")
  3. With DOMDocument
  4.     .Load "C:\XML\" & basename
  5.     if .parseError.reason <> "" Then
  6.         MsgBox .parseError.reason,vbCritical
  7.         WScript.Quit
  8.     End if
  9.     With .documentElement.SelectSingleNode("списокСубъектов")
  10.         tmpStr = ""
  11.         For Each Node in .SelectNodes("субъект")
  12.              sNomer = Node.GetAttribute("идентификаторСубъекта")
  13.              firm = Node.GetAttribute("имя")          
  14.    MsgBox sNomer
  15.    MsgBox firm
  16. Next
  17.     End With
  18. End With


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

Ответить

Номер ответа: 4
Автор ответа:
 Олег



Вопросов: 4
Ответов: 10
 Профиль | | #4 Добавлено: 03.11.11 13:37
Разобрался. Спасибо. Сделал вот так :

  1. firm = Replace(firm,"'","")
  2. firm = Replace(firm,"""", "")
  3. firm = Replace(firm,"»", "")
  4. firm = Replace(firm,"«", "")


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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам