powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с XML через COM MSXML
4 сообщений из 4, страница 1 из 1
Работа с XML через COM MSXML
    #34169317
Pr0teus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот может кому интересно будет. Работа с XML через COM в VFox 6.0.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
* пример кода вывода имен таблиц
*
* <package>
*    <body>
*       <tables>
*          <table tname="table01">
*          <table tname="table02">
*          <table tname="table03">
*       </tables>
*    </body>
* </package>


l_objXMLDoc = CreateObject('MSXML2.DOMDocument.3.0')

IF(IsNull(l_objXMLDoc)) THEN
   RETURN .F.
ENDIF

l_objXMLDoc.Async = .F.
l_objXMLDoc.Load(xmlfilename)
	
IF (l_objXMLDoc.parseError.errorCode ==  0 ) THEN

   l_XMLRootNode = l_objXMLDoc.selectSingleNode("package/body/tables")
   
   IF (!IsNull(l_XMLRootNode)) THEN

      FOR EACH l_XMLTableNode IN l_XMLRootNode.childNodes

            FOR EACH l_XMLAttribute IN l_XMLTableNode.Attributes

                  IF (UPPER(ALLTRIM(l_XMLAttribute.Name)) == 'TNAME') THEN
                     ? UPPER(ALLTRIM(l_XMLAttribute.nodeValue)))
                  ENDIF

            NEXT
      NEXT

   ENDIF

ENDIF

RELEASE ALL LIKE "l_*"

...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Работа с XML через COM MSXML
    #35975992
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю под VFP7.
Получаю пустое значение тэга, в чем проблема ?
Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
loXML = CREATEOBJECT("MSXML.DOMDocument")
loXML.load("Myfile.xml")
loXMLNodes=loXML.getElementsByTagName("form/fields")
? "length="+STR(loXMLNodes.length)
FOR i =  0  TO (loXMLNodes.length - 1 )
      loNodes = loXMLNodes.nextNode      
      loFname = ALLTRIM(loNodes.getAttribute("name"))
      ? loFname
      ? loNodes.nodevalue
ENDFOR
...
Рейтинг: 0 / 0
Работа с XML через COM MSXML
    #35976125
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
каким образом согласуется аттрибут коллекции .length
и сама коллекция?

если Вы видите выше, то в примере коллекцию перебирают
FOR EACH ... endfor

это Вас привело к какой-то мысли?
...
Рейтинг: 0 / 0
Работа с XML через COM MSXML
    #35976647
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне собственно нужна была
? loNodes.text
вместо
? loNodes.nodevalue

Вопрос решен.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с XML через COM MSXML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]