I want to get the value from an XML file, but I failed. Could you help me point out the problem? Because I already tried very hard to test and search on Google, but I still don't see the problem.
XML:
<?xml version="1.0" encoding="utf-8" ?> <Contacts> - <Contact> <ID>xxx</ID> <AutoUpdateEnabled>false</AutoUpdateEnabled> <LastChanged>2013-05-29T01:53:59.4470000Z</LastChanged> - <Profiles> - <Personal> <FirstName>My First Name</FirstName> <LastName>My Last Name</LastName> <UniqueName>My Unique Name</UniqueName> <SortName></SortName> <DisplayName>My Display Name</DisplayName> </Personal> </Profiles> - <Phones> - <Phone> <ID>3</ID> <PhoneType>Mobile</PhoneType> <Number>000-0000000</Number> <IsIMEnabled>false</IsIMEnabled> <IsDefault>false</IsDefault> </Phone> </Phones> - <Locations> - <Location> <ID>2</ID> <LocationType>Business</LocationType> <CompanyName></CompanyName> <IsDefault>false</IsDefault> </Location> </Locations> </Contact> - <Contact> <ID>xxx</ID> <AutoUpdateEnabled>false</AutoUpdateEnabled> <LastChanged>2013-05-29T01:53:25.2670000Z</LastChanged> - <Profiles> - <Personal> <FirstName>Person</FirstName> <LastName>Two</LastName> <UniqueName></UniqueName> <SortName></SortName> <DisplayName>Person Two</DisplayName> </Personal> </Profiles> - <Emails> - <Email> <ID>1</ID> <EmailType>Personal</EmailType> <Address> MyTest@gmail.com </Address> <IsIMEnabled>false</IsIMEnabled> <IsDefault>true</IsDefault> </Email> </Emails> - <Locations> - <Location> <ID>2</ID> <LocationType>Business</LocationType> <CompanyName>Testing Company</CompanyName> <IsDefault>false</IsDefault> </Location> </Locations> </Contact> </Contacts>
My sample code is:
XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml("TheXMLFile.xml"); xmldoc.DocumentElement.SelectNodes("contact") // return 0 counts xmldoc.DocumentElement.SelectNodes("/contact") // return 0 counts xmldoc.DocumentElement.SelectNodes("/contact") // return 0 counts xmldoc.DocumentElement.SelectNodes("/contacts/contact") // return 0 counts xmldoc.DocumentElement.SelectNodes("*") // return 2 counts !this works XmlNodeList elemList = xmldoc.DocumentElement.GetElementsByTagName("contact"); // return 2 counts !this also works foreach (XmlNode node in elemList) { node.SelectSingleNode("Profiles") //return "" node.SelectSingleNode("/Profiles") //return "" node.SelectSingleNode("//Profiles") //return "" node.SelectSingleNode(".//Profiles") //return "" }
I just want to get "FirstName, LastName, Email Address", the SelectNodes function just doesn't work as expected ... There is no hint at all ... please help. thanks in advance
user2402624
source share