Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / TreeView & XML - помогите сообразить / 16 сообщений из 16, страница 1 из 1
10.11.2008, 13:18
    #35643800
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView & XML - помогите сообразить
Доброго времени суток, уважаемые

Помогите пожалуйста сообразить как лучше сделать:
имеется строка в формате 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
10.11.2008, 14:22
    #35644036
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView & XML - помогите сообразить
а в чем загвоздка? пробегись по узлам Row и построй дерево
используй MSXML4.0
...
Рейтинг: 0 / 0
10.11.2008, 14:28
    #35644055
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView & XML - помогите сообразить
как-то так:

Код: 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
10.11.2008, 14:32
    #35644073
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView & XML - помогите сообразить
Konst_One,

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

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

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

во-вторых:
Код: plaintext
for binary
...
Рейтинг: 0 / 0
10.11.2008, 17:23
    #35644649
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView & XML - помогите сообразить
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
10.11.2008, 17:29
    #35644667
Kallandor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView & XML - помогите сообразить
Вернее даже не так вопрос поставить, а по другому:
сравнимы ли узлы XML c узлами TreeView?
...
Рейтинг: 0 / 0
10.11.2008, 17:30
    #35644671
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView & XML - помогите сообразить
как обычно

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

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

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

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

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

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


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