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") & "']"
Этот материал задерживал меня на несколько дней, надеюсь, кто-то найдет этот вопрос / ответ полезным.
С уважением.