I'm trying to get the value of a single node using
SelectSingleNode and I get the NullReference Error.
Example: I want to get the URL in the HTML element but
the GetHTMLPath() function fails on the objNode line.
Any ideas how to make this work? You'll see I've tried
different methods of getting the values. XML 4.0 was so
easy.
I'm using VB.Net 2003 on XP Pro.
Thanks,
King Wilder
===============================================
<?xml version="1.0"?>
<Root xmlns="http://myuri.org/myschema.xsd">
<Settings>
<Paths>
<Images>C:\Stuff\images</Images>
<HTML>C:\Stuff\test2.html</HTML>
<Templates>
<Header>
</Header>
<Footer>
</Footer>
</Templates>
</Paths>
</Settings>
</Root>
'~~~ New Load function.
Public Function LoadThumbs() As XmlDocument
Dim objXML As New XmlDocument
Try
objXML.Load("mysettings.config")
Return objXML
Catch ex As Exception
Return Nothing
Finally
objXML = Nothing
End Try
End Function
'~~~ Get the HTML Path.
Public Function GetHTMLPath() As String
Dim strPath As String
Dim selectExpr As String = String.Empty
Dim myXPathExpr As XPathExpression
Dim objNode As XmlNode
Dim objRoot As XmlNode
Try
'Dim myXPathNavigator As XPathNavigator =
LoadThumbs.CreateNavigator()
'selectExpr = "descendant::HTML"
'myXPathNavigator.MoveToRoot()
'myXPathExpr = myXPathNavigator.Compile
(selectExpr)
''Dim objNode As XmlNode =
myXPathNavigator.Select(myXPathExpr)
'Dim myXPathNodeIterator As XPathNodeIterator
= myXPathNavigator.Select(myXPathExpr)
'MessageBox.Show
(myXPathNodeIterator.Current.ToString)
'strPath = myXPathNodeIterator.Current.Value
Dim objXML As XmlDocument
objXML = LoadThumbs()
MessageBox.Show(objXML.OuterXml)
objRoot = objXML.DocumentElement
'~~~ The following line fails.
objNode = objRoot.SelectSingleNode
("descendant::Settings/Paths/HTML")
MessageBox.Show(objNode.InnerXml)
strPath = objNode.InnerText
'Dim myXmlNodeReader As Xml.XmlNodeReader =
New Xml.XmlNodeReader
(objXML.DocumentElement.SelectSingleNode("//HTML"))
'myXmlNodeReader.Read()
'strPath = myXmlNodeReader.Value
Return strPath
Catch ex As Exception
End Try
End Function