Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с XML через COM MSXML / 4 сообщений из 4, страница 1 из 1
01.12.2006, 09:26
    #34169317
Pr0teus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с XML через COM MSXML
Вот может кому интересно будет. Работа с 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
Период между сообщениями больше года.
08.05.2009, 09:12
    #35975992
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с XML через COM MSXML
Работаю под 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
08.05.2009, 10:14
    #35976125
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с XML через COM MSXML
каким образом согласуется аттрибут коллекции .length
и сама коллекция?

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

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

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


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