如何检查XML元素是否存在?



我想扫描我的xml文件,无论特定节点是否存在 这些是我的代码

Dim xmlDoc As New XmlDocument()
xmlDoc.Load("C:UsersDesktopXMLFILE.xml")
Dim rootName As String = xmlDoc.DocumentElement.Name
Dim nodes As XmlNode
'Dim objTest As XmlElement
Try
nodes = xmlDoc.DocumentElement.SelectSingleNode(rootName & "\PRODUCT\NAME")
MessageBox.Show("Exists")
Catch ex As Exception
MessageBox.Show("Not exists")
End Try

结果显示"不存在"。 在我注释掉我的尝试,捕获和结束尝试后,错误结果显示:

An unhandled exception of type 'System.Xml.XPath.XPathException' occurred in System.Xml.dll
Additional information: 'RootName\PRODUCT\NAME' has an invalid token.

那是什么意思?

  1. 首先,路径不正确。/是 xml 路径的路径分隔符,而不是\
  2. 不应在 xml 路径中指定rootName,因为您已经为根节点调用了SelectSingleNode函数 (xmlDoc.DocumentElement(
  3. 您识别不存在节点的方式不正确。 如果路径不存在,SelectSingleNode不会引发异常。相反,它只是返回Nothing

基于上述,以下是修改后的代码:

Dim xmlDoc As New XmlDocument()
xmlDoc.Load("C:UsersDesktopXMLFILE.xml")
Dim nodes As XmlNode
Try
nodes = xmlDoc.DocumentElement.SelectSingleNode("PRODUCT/NAME")
If nodes Is Nothing Then
MessageBox.Show("Not exists")
Else
MessageBox.Show("Exists")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

要使用根目录SelectSingleNode,请使用以下路径:

xmlDoc.SelectSingleNode("descendant::PRODUCT/NAME")

相关内容

  • 没有找到相关文章

最新更新