I’m creating a ping application for school with an XML full of URLs.
I lost an hour because of XmlNode.Value was resulting in a null.
Then I changed it into InnerText and it worked fine.
Now I was wonder what’s the difference because MSDN says that .Value returns the value of the node and InnerText returns the concatenated values of the node and all its child nodes.
Can someone explain this for me please?
<sites>
<site>
<url>www.test.be</url>
<email>test@test.be</email>
</site>
<site>
<url>www.temp.be</url>
<email>temp@temp.be</email>
</site>
<site>
<url>www.lorim.ipsum</url>
<email>interim.address@domain.com</email>
</site></sites>
If, for example, your XML looks like
<Foo>Bar</Foo>then “Bar” is actually considered a separate node: anXmlTextnode (sub-classed fromXmlNode). TheValueproperty of thatXmlTextnode would be “Bar”.“Foo” is considered to be an
XmlElement(also sub-classed fromXmlNode).XmlNode.Valuereturns different things based on the type of node it is. See this table which shows thatValuealways returnsnullforElementnodes.The
InnerTextof the Foo node returns “Bar” because it concatenates the values of its children (in this case, only the oneXmlTextnode).