Mega Code Archive

 
Categories / C# / XML
 

XPathNavigator ValueType Gets the NET Framework Type of the current node

using System; using System.Linq; using System.Xml; using System.Xml.Linq; using System.Collections; using System.Collections.Generic; using System.Xml.XPath; public class MainClass {     public static void Main()     {         XmlReaderSettings settings = new XmlReaderSettings();         settings.Schemas.Add("http://www.domain.com/books", "domainBooks.xsd");         settings.ValidationType = ValidationType.Schema;         XmlReader reader = XmlReader.Create("domainBooks.xml", settings);         XPathDocument document = new XPathDocument(reader);         XPathNavigator navigator = document.CreateNavigator();         navigator.MoveToChild("bookstore", "http://www.domain.com/books");         navigator.MoveToChild("book", "http://www.domain.com/books");         navigator.MoveToChild("price", "http://www.domain.com/books");         Console.WriteLine(navigator.ValueType);         string price = navigator.ValueAs(typeof(string)) as string;         Console.WriteLine(price);     } } /* <?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.domain.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">     <xs:element name="bookstore">         <xs:complexType>             <xs:sequence>                 <xs:element maxOccurs="unbounded" name="book">                     <xs:complexType>                         <xs:sequence>                             <xs:element name="title" type="xs:string" />                             <xs:element name="author">                                 <xs:complexType>                                     <xs:sequence>                                         <xs:element minOccurs="0" name="name" type="xs:string" />                                         <xs:element minOccurs="0" name="first-name" type="xs:string" />                                         <xs:element minOccurs="0" name="last-name" type="xs:string" />                                     </xs:sequence>                                 </xs:complexType>                             </xs:element>                             <xs:element name="price" type="xs:decimal" />                         </xs:sequence>                         <xs:attribute name="genre" type="xs:string" use="required" />                         <xs:attribute name="publicationdate" type="xs:date" use="required" />                         <xs:attribute name="ISBN" type="xs:string" use="required" />                     </xs:complexType>                 </xs:element>             </xs:sequence>         </xs:complexType>     </xs:element> </xs:schema> */