|
|
|
VB & XML
|
|||
|---|---|---|---|
|
#18+
Ситуация следующая. Считываю данные из XML, заношу в ListView. При событии listView_ItemClick информация по данным в Item (по ID) отображается в TextBox и Label. Вопрос в следующем - как обрабатывать ситуацию отсутсвия какого-либо узла в XML-документе или информации в нем? Заранее спасибо. На всякий случай приведу код: sub form_load() Dim li As ListItem Dim a As New MSXML.DOMDocument a.loadXML str lvFind.ListItems.Clear Dim b Set b = a.getElementsByTagName("O5") For Each Key In b Set li = lvFind.ListItems.Add(, "ID" & Key.selectSingleNode("@id").Text, Key.selectSingleNode("./pTabNum").Text) li.SubItems(1) = StrConv(StrConv(Key.selectSingleNode("./pFam").Text, vbLowerCase), vbProperCase) li.SubItems(2) = StrConv(StrConv(Key.selectSingleNode("./pIm").Text, vbLowerCase), vbProperCase) li.SubItems(3) = StrConv(StrConv(Key.selectSingleNode("./pOtch").Text, vbLowerCase), vbProperCase) Next end sub Private Sub lvFind_ItemClick(ByVal Item As MSComctlLib.ListItem) Dim Detail As New MSXML.DOMDocument Detail.loadXML str Dim bb Set bb = Detail.getElementsByTagName("O5") For Each Key In bb lblDateRojd(0).Caption = Key.selectSingleNode("./pDatBth").Text lblTypeDoc(0).Caption = Key.selectSingleNode("./O13/pDocType").Text lblSeriy(0).Caption = Key.selectSingleNode("./O13/pDocSer").Text lblNomer(0).Caption = Key.selectSingleNode("./O13/pDocNum").Text lblSex(0).Caption = Key.selectSingleNode("./pSex").Text Next End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 08:32 |
|
||
|
VB & XML
|
|||
|---|---|---|---|
|
#18+
Эх, вопрос что ли неточно задала...... Или ни у кого не возникало таких проблем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 14:40 |
|
||
|
VB & XML
|
|||
|---|---|---|---|
|
#18+
К сожалению не проверял. Но после прочтения MSDN появилась вот такая мысль if NOT isNull(Key.selectSingleNode("./pDatBth")) lblDateRojd(0).Caption = Key.selectSingleNode("./pDatBth").Text endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 15:38 |
|
||
|
VB & XML
|
|||
|---|---|---|---|
|
#18+
Можно попробовать поюзать XPATH. Его можно использовать например в методе SelectNodes. А потом анализировать список нод. nodes = xmldoc.selectnodes("//pSex") - выбрать ноду pSex из любого уровня. Можно еще попробовать работать с XML схемой, накладывать ее на обрабатываемый XML-док и смотреть что получится. Схема поможет проверить корректность данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2004, 11:36 |
|
||
|
VB & XML
|
|||
|---|---|---|---|
|
#18+
Yuriy Goodz Можно еще попробовать работать с XML схемой, накладывать ее на обрабатываемый XML-док и смотреть что получится. Схема поможет проверить корректность данных. Именно так. Описывается XSD схема, на которую в самом файле XML ставится ссылка.Тогда при загрузке XML на этапе Detail.loadXML str возникает ошибка в случае несоответствия XML XSD схеме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2004, 12:01 |
|
||
|
VB & XML
|
|||
|---|---|---|---|
|
#18+
Не понял, к чему вы пришли. Анализировать список нод мне не очень подходит, хотя можно. А вот схема не сработает. Да и нет её. У меня такая заморочка, нужно создать элемент в узле, которого может ещё и не быть. Так вот, не пойму, как проверить есть ли узел или нет. Если узел есть, то всё ок. Элемент добавляется, а если его нет, то ругается на то, что переменная не определена. Как я понял, это моя edir1. Она то и должна быть узлом, которого и нет. Как узнать, что переменная не определена? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2008, 08:56 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=200&tid=2162665]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 392ms |

| 0 / 0 |
