62 lines
1.8 KiB
C#
62 lines
1.8 KiB
C#
using System;
|
|
using System.Xml;
|
|
|
|
namespace Creditcall.ChipDna.Client
|
|
{
|
|
public abstract class BaseConfigParser
|
|
{
|
|
private const string NOT_LOADED_MESSAGE = "XML Document has not been loaded...";
|
|
|
|
public XmlDocument XmlDocument;
|
|
protected XmlElement RootNode { get { return XmlDocument.DocumentElement; } }
|
|
|
|
|
|
protected string GetElementByProperties(XmlElement rootnode, string propertyName)
|
|
{
|
|
try
|
|
{
|
|
var attributeNode = rootnode.GetAttributeNode(propertyName);
|
|
if (attributeNode != null) return attributeNode.Value;
|
|
return rootnode.GetElementsByTagName(propertyName).Count > 0 ? rootnode.GetElementsByTagName(propertyName)[0].InnerText : null;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
protected void LoadXmlFile(string configFileName)
|
|
{
|
|
XmlDocument = new XmlDocument();
|
|
XmlDocument.Load(configFileName);
|
|
}
|
|
|
|
protected XmlNodeList GetNodesByTagName(string tagName)
|
|
{
|
|
return GetNodesByTagName(XmlDocument.DocumentElement, tagName);
|
|
}
|
|
|
|
|
|
protected XmlNodeList GetNodesByTagName(XmlElement rootnode, string tagName)
|
|
{
|
|
if (XmlDocument != null)
|
|
{
|
|
return rootnode.GetElementsByTagName(tagName);
|
|
}
|
|
throw new InvalidOperationException(NOT_LOADED_MESSAGE);
|
|
}
|
|
|
|
public string GetElementByName(XmlElement rootnode, string nodeName)
|
|
{
|
|
try
|
|
{
|
|
return rootnode.GetElementsByTagName(nodeName).Count != 0 ? rootnode.GetElementsByTagName(nodeName)[0].InnerText : null;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|