Необязательные поля в InfoPath; Получение узла XML с VB - PullRequest
0 голосов
/ 12 апреля 2010

Я использую VB для получения данных через мою форму. У меня есть некоторые дополнительные поля в форме, и у меня проблема со следующим кодом:

MsgBox(myXPathNavigator.SelectSingleNode( _
  "/my:Status/my:Questions/my:Questions1", Me.NamespaceManager _
).IsNode.ToString)

Когда дополнительное поле 'Questions1' вставляется в форму, я получаю значение 'true' с помощью функции IsNode().

Если поле не вставлено, у меня есть исключение, указывающее, что ссылка неверна (и это действительно так). Есть ли способ проверить узел, присутствует ли он в моей форме или нет?

Заранее спасибо, вс

1 Ответ

2 голосов
/ 12 апреля 2010

Только не делай этого за один шаг. SelectSingleNode() возвращает Nothing, если XPath не был найден. Вы должны поймать это условие отдельно.

Dim q As XPathNavigator
Dim path as String

path = "/my:Status/my:Questions/my:Questions1"
q = myXPathNavigator.SelectSingleNode(path, Me.NamespaceManager)

If Not q Is Nothing Then
  MsgBox(q.ToString)
End If
...