How to check whether user defined date format matches with element value’s date format at XPath?
There is a sample code to check whether any element value’s datetime format matches with the format given by user in XPath in xml file or not.
Code has been developed in C# whereas application is windows based.
Suppose user wants to give different date time formats such as "MM-DD-YYYY" or "DD-MM-YYYY" or any other formats.
Formats of an element values needs to be checked against the datetime formats. If it matches with user defined date-time format then it will return as true else it is false. Make sure that only element values present at XPath will get considered. It will not check with all element value formats.
public bool match_elementval_with_given_date_format(string user_given_xpath, string user_defined_xml, string expected_date_format)
{
bool result = false;
XmlDocument user_defined_xml_document = new XmlDocument();
user_defined_xml_document.Load(user_defined_xml);
XmlNodeList myNodeList = user_defined_xml_document.SelectNodes(user_given_xpath);
foreach (XmlNode myNode in myNodeList)
{
bool get_result = date_format_validate (myNode.InnerText.Trim() , expected_date_format);
if (get_result == true)
{
result = true;
return result;
}
else
{
result = false;
}
}
return result;
}
public bool date_format_validate(string date, string date_format)
{
try
{
DateTime.ParseExact(date, date_format, DateTimeFormatInfo.InvariantInfo);
}
catch
{
return false;
}
return true;
}