powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / TreeView & XML - помогите сообразить
16 сообщений из 16, страница 1 из 1
TreeView & XML - помогите сообразить
    #35643800
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток, уважаемые

Помогите пожалуйста сообразить как лучше сделать:
имеется строка в формате xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="UTF-8"?>
<Root>
  <Product ProductName="AA">
    <Table TableName="Table1">
      <Row Row_id="0">
        <Field FieldName="ID" FieldValue="1" FieldType="int"/>
        <Field FieldName="MNAME" FieldValue="'AAAAAA'" FieldType="VARCHAR(30)"/>
        <Field FieldName="STATUS" FieldValue="'A'" FieldType="CHAR(1)"/>
      </Row>
      <Row Row_id="1">
        <Field FieldName="MID" FieldValue="2" FieldType="int"/>
        <Field FieldName="NAME" FieldValue="'BBBBBB'" FieldType="VARCHAR(30)"/>
        <Field FieldName="STATUS" FieldValue="'A'" FieldType="CHAR(1)"/>
      </Row>
    </Table>
  </Product>
</Root>
Хотелось бы отобразить ее в дереве. Как это сделать?
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644036
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чем загвоздка? пробегись по узлам Row и построй дерево
используй MSXML4.0
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644055
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim doc As MSXML2.DOMDocument
Dim docNode As MSXML2.IXMLDOMNode
Dim docNodes  As MSXML2.IXMLDOMNodeList

                Set doc = New MSXML2.DOMDocument
                doc.async = False
                doc.Load "c:\test.xml"
                Set docNodes = doc.documentElement.selectNodes("/Root/Product")
                For each docNode in docNodes
                     ...
                     'и дальше по вложенности
                Next
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644073
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

я примерно так и думала, но есть загвоздка: я имею строку. и хочется эту строку сделать xml'ем, что-то типа:
Код: plaintext
1.
Dim oDoc As New MSXML2.DOMDocument40
oDoc.xml = iString
только так конечно нельзя.
А если сохраняю строку в файл с расширением xml, то VB мне все в кавычках делает, двойных :(
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644092
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iString - это как раз входящая строка в формате xml
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644268
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KallandorKonst_One,

я примерно так и думала, но есть загвоздка: я имею строку. и хочется эту строку сделать xml'ем, что-то типа:
Код: plaintext
1.
Dim oDoc As New MSXML2.DOMDocument40
oDoc.xml = iString
только так конечно нельзя.
А если сохраняю строку в файл с расширением xml, то VB мне все в кавычках делает, двойных :(

не понял на счет двойных кавычек, можно подробней описать, что и как получается
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644343
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

когда я пишу:
Код: plaintext
1.
2.
3.
Open App.Path + "\Tmp.xml" For Output As # 1 
Write # 1 , iString
Close # 1 

потом открываю Tmp.xml, то строка в нем выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
"<?xml version=""1.0""?>
<Root><Product ProductName=""AA""><Table TableName=""AAAA""><Row Row_id=""0"">
<Field FieldName=""ID"" FieldValue=""1"" FieldType=""INT""></Field>
<Field FieldName=""NAME"" FieldValue=""'ƪ᳀콴Ⴊ                   '"" FieldType=""VARCHAR(30)""></Field>
<Field FieldName=""STATUS"" FieldValue=""'A'"" FieldType=""CHAR(1)""></Field>
</Row><Row Row_id=""1""><Field FieldName=""FIRMID"" FieldValue=""2"" FieldType=""INT""></Field>
<Field FieldName=""FIRMNAME"" FieldValue=""'́�԰᩠                     '"" FieldType=""VARCHAR(30)""></Field>
<Field FieldName=""STATUS"" FieldValue=""'A'"" FieldType=""CHAR(1)""></Field>
</Row></Table></Product></Root>"

Собственно одинарные кавычки стали везде двойными, и русские буквы не правильно отображаются
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644356
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kallandor
Код: plaintext
1.
Dim oDoc As New MSXML2.DOMDocument40
oDoc.xml = iString
только так конечно нельзя.Зато можно oDoc.LoadXML iString
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644552
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во-первых:
Код: plaintext
<?xml version="1.0" encoding="windows-1251"?>

во-вторых:
Код: plaintext
for binary
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644649
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Спасибо.

Konst_One,

а не подскажите как дальше. Вот я сделала:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
oDoc.loadXML iString
tr_result.Nodes.Clear 'TreeView
'Tables
Set nodeList = oDoc.documentElement.selectNodes("//Product[@ProductName=" + Chr( 34 ) + Trim(tx_product.Text) + Chr( 34 ) + "]/Table")
For Each oNode In nodeList
    For Each attr In oNode.Attributes
       'надо добавить узлы
    Next
Next

как собственно узлы добавить?
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644667
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее даже не так вопрос поставить, а по другому:
сравнимы ли узлы XML c узлами TreeView?
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644671
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как обычно

Код: plaintext
Me.TreeView1.Nodes.Add "root", tvwChild, "Node1", "Node1"
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644676
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KallandorВернее даже не так вопрос поставить, а по другому:
сравнимы ли узлы XML c узлами TreeView?

это тебе решать. можно в Tag свойство содержимое xmlnode засунуть, если нужно
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644680
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_OneKallandorВернее даже не так вопрос поставить, а по другому:
сравнимы ли узлы XML c узлами TreeView?

это тебе решать. можно в Tag свойство содержимое xmlnode засунуть, если нужно

не поняла, это как?
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644694
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Set nd=Me.TreeView1.Nodes.Add ("root", tvwChild, "Node1", "Node1")
nd.Tag = docXML.Node

как-то так, экспериментируй ;)
...
Рейтинг: 0 / 0
TreeView & XML - помогите сообразить
    #35644711
Фотография Kallandor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

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


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