VB6 XML-строка в текстовое поле - PullRequest
2 голосов
/ 09 февраля 2010

Может кто-нибудь помочь мне создать функцию, которая будет принимать строку параметра XML и возвращать отформатированную строку в качестве ответа, который после может Пример:

<cars>
      <ford>
        <model>fiesta</model>
        <model>focus</model>
      </ford>
      <renault>
        <model>twingo</model>
        <model>clio</model>
      </renault>
</cars>

должен вернуть

cars:
     ford:
          model=fiesta
          model=focus
     renault:
          model=twingo
          model=clio

Ответы [ 2 ]

1 голос
/ 09 февраля 2010

VBScript:

set xmldoc = CreateObject("Microsoft.XMLDOM")
xmldoc.async = false
xmldoc.loadXML ""               & _
  "<cars>"                      & _
  "    <ford>"                  & _
  "      <model>fiesta</model>" & _
  "      <model>focus</model>"  & _
  "    </ford>"                 & _
  "    <renault>"               & _
  "      <model>twingo</model>" & _
  "      <model>clio</model>"   & _
  "    </renault>"              & _
  "</cars>"

test.value = buildStructure(xmlDoc.DocumentElement, "")

function buildStructure(xmlParent, identLevel)

  dim result, xmlNode
  result = identLevel & xmlParent.nodeName & ": " & chr(13)

    for each xmlNode in xmlParent.SelectNodes("*")
        if not xmlNode.SelectSingleNode("*") is nothing Then
           result = result & buildStructure(xmlNode, identLevel & "   ")
        else
           result = result & identLevel & "   " & _
                    xmlNode.nodeName & " = " & xmlNode.text & chr(13)
        End if
    next

    buildStructure = result

end function
1 голос
/ 09 февраля 2010

Самый простой способ - использовать библиотеку MSXML. Взгляните, например, на следующий учебник:

http://msdn.microsoft.com/en-us/library/aa468547.aspx

У него нет функции «красивой печати», которая делает именно то, что вы хотите, но довольно просто написать функцию, которая перебирает элементы XML и выводит форматированный текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...