vb.net Xmldocument, selectSingleNode возвращает значение только с помощью утилиты "watch" vs2008

У меня проблема с функцией selectSingleNode.

Контекст: в программе мне нужно выполнить несколько последующих фильтров, обычно у меня нет проблем с ними, но на этот раз у меня странная "ошибка".

У меня есть следующий код:

Dim test As XmlNode = parentXmlnode.SelectSingleNode("day[@date='" & fecha.Date.ToString("o") & "']"


Проблема: Когда я отлаживаю / запускаю приведенный выше код, переменная "test" также ничего не имеет, но если я применяю "watch" к инструкции "selectSingleNode", она возвращает XmlNode.

Независимо от того, вернусь ли я к этой части кода и выполню повторную разборку, результат всегда один и тот же.

Конечно, приведенный выше код упрощает исходный код, а вот нетронутый оригинальный код, вызывающий проблему:

РЕДАКТИРОВАТЬ: полный код не был необходим, на самом деле это затрудняет чтение вопроса, ошибка в строке кода, представленной ранее.

Любая информация высоко ценится. Заранее спасибо.

1 ответ

Решение

Ошибка была в части кода " fecha.Date.ToString (" o ") ".

Когда я использую утилиту часов в этой части, я получаю формат DateTimeKind.Unspecified ISO 8601 (2009-06-15T13: 45: 30.0000000)

но когда код был интерпретирован, программа получила формат DateTimeKind.UTC ISO 8601 (2009-06-15T13: 45: 30.0000000Z)

Я обнаружил это с помощью промежуточной переменной String для хранения фильтра xpath. Я не знаю, почему утилита часов меняет мой результат, возможно, имеет комплекс частиц Гейзенберга,

но для исправления использовалась промежуточная переменная datetime, определенно объявленная как UTC datetimekind:

Решение:

Dim fechaAux As String = New DateTime(fecha.Ticks, DateTimeKind.Unspecified).ToString("o")
Dim test As XmlNode = parentXmlnode.SelectSingleNode("day[@date='" & fechaAux.Date.ToString("o") & "']"

Этот материал задерживал меня на несколько дней, надеюсь, кто-то найдет этот вопрос / ответ полезным.

С уважением.

Другие вопросы по тегам