|
|
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
Вопрос про msxml. Есть у меня функция, которая возвращает текст из элемента. Всё нормально работает, когда элемент есть, а вот когда его нет, выскакивает ошибка. Я конечно могу грубо обрабатывать ошибки, но мне не хотелось бы поступать таким образом. Код: plaintext 1. 2. 3. 4. 5. 6. Подскажите, пожалуйста, как узнать, что запрошенного элемента нет и просто вернуть пустую строку. isObject(e) всегда возвращает true e.parseError возвращает 0 Но на строке getParam = e.text Выскакивает ошибка, что объект не определён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 14:45 |
|
||
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 15:13 |
|
||
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
Может, сначала так: Dim e As New IXMLDOMElement Но я не проверял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 16:08 |
|
||
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
Не думаю, что очень важно как объявляется. Если элемент есть, то всё прекрасно работает. Ошибка же только, когда элемента нет. Вот например у меня в файле <root> <my1>hello!</my1> </root> Когда я запрашиваю /root/my1, то всё ок А когда же я запрашиваю /root/my2, то ошибка мне эта ошибка жить мешает! Можно конечно запустить цикл, и просмотреть все ноды, но мне кажется, на это будет уходить больше времени. а onerror думаю нужно использовать на самый крайний случай. Но без него мне не справится с этим глюком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 20:13 |
|
||
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
> Автор: Eric-S > Вопрос про msxml. Есть у меня функция, которая возвращает текст из > элемента. > Всё нормально работает, когда элемент есть, а вот когда его нет, > выскакивает ошибка. > Я конечно могу грубо обрабатывать ошибки, но мне не хотелось бы > поступать таким образом. А с каких пор обработка ошибок стала игнорироваться и отвергатся разработчиком? > ' получение значения параметра > Public Function GetParam(ByVal Key As String) As String GetParam = vbNullString 'Или присваивай что хочешь, например "Куда прёшь!!! Не видишь параметра нет!" > Dim e As IXMLDOMElement On Error Resume Next > Set e = xmlDoc.selectSingleNode("//book_info/" + Key) > GetParam = e.Text > End Function А теперь посмотри с 2 часов дня до 7 часов вечера, ты убил на какой-то бред, который решается двумя строчками Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 20:33 |
|
||
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
Ну не 5 часов. А скажем минут 5. У меня уже была написана и работала очень похожая функция с обработкой ошибок, правда я конкретно вылавливаю err.no = 91. Но я спрашивал именно об определении через msxml. Или других способах. Считаю, что ошибки нужно предупреждать заранее, а не исправлять их последствия. Ввключать обработку ошибок на ранний стадии мне не очень нравится. Ошибка произошла, но из-за этих on error не очень даже понятна где и какая. А так мне сразу показывается строчка с ошибкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2008, 13:06 |
|
||
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
А надо включать голову, а не обработчики. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2008, 13:56 |
|
||
|
msxml, Как узнать, что запрошенного элемента нет?
|
|||
|---|---|---|---|
|
#18+
Antonariy, вы обсалютно правы на счёт обработчиков, я использовал их только как вынужденное средство. Включать голову? Ха! Я только предпологал, что есть конструкция для проверки объекта, вот поэтому и спросил. Вобщем мой респект! Наконец-то добрался до этой функции, исправил, и всё заработало на ура! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2008, 11:00 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35177706&tid=2162572]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 377ms |

| 0 / 0 |
