//--------------------------------------------------------------------- // File: XPathValidator.cs // // Summary: // // Copyright (c) http://bizunitextensions.codeplex.com. All rights reserved. // // THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY // KIND, WHETHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR // PURPOSE. //--------------------------------------------------------------------- using System; using System.Xml.XPath; using System.Xml; namespace BizUnit.Extensions.Utilities { /// <summary> /// A utility class which applies XPath expressions to xml files and returns the value /// in a variety of data types /// </summary> public class XPathValidator { /// <summary> /// basic constructor /// </summary> public XPathValidator() { // // TODO: Add constructor logic here // } /// <summary> /// Evaluates the XPath expression and returns a string value /// </summary> /// <param name="InputXmlFile">full path of the xml file to parse</param> /// <param name="XPathString">XPath expression to apply</param> /// <returns>string</returns> public string GetStringValue(string InputXmlFile,string XPathString) { string retval ; object obj = MakeXPathExpression(InputXmlFile,XPathString); retval = (string)obj; return(retval); } /// <summary> /// Evaluates the XPath expression and returns a integer value /// </summary> /// <param name="InputXmlFile">full path of the xml file to parse</param> /// <param name="XPathString">XPath expression to apply</param> /// <returns>int</returns> public int GetIntegerValue(string InputXmlFile,string XPathString) { int retval ; object obj = MakeXPathExpression(InputXmlFile,XPathString); retval = System.Convert.ToInt32(obj); return(retval); } /// <summary> /// Evaluates the XPath expression and returns a bool value /// </summary> /// <param name="InputXmlFile">full path of the xml file to parse</param> /// <param name="XPathString">XPath expression to apply</param> /// <returns>bool</returns> public bool GetBooleanValue(string InputXmlFile,string XPathString) { bool retval ; object obj = MakeXPathExpression(InputXmlFile,XPathString); retval = System.Convert.ToBoolean(obj); return(retval); } private object MakeXPathExpression(string inputXmlFile,string XPathString) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(inputXmlFile); XPathNavigator nav = xDoc.CreateNavigator(); XPathExpression expr = nav.Compile( XPathString); return(nav.Evaluate(expr)); } } }