// Code History: // 2010-12-31 mws // ****************************************************************************** /// <summary> /// Gets textnode value of an element/property as int64 /// </summary> /// <param name="xPath">XPath selecting the element</param> /// <param name="value">Returned int64 value</param> /// <param name="result">Returns a ReadFromItemResultEnum value</param> public void GetElemValueAsInt64( string xPath, out Int64 value, out ReadFromItemResultEnum result) { value = 0; result = ReadFromItemResultEnum.ok; if (string.IsNullOrEmpty(xPath)) { result = ReadFromItemResultEnum.emptyXPath; return; } string valueStr; GetElemValueAsString(xPath, ElementTextvalueTypeEnum.innerText, out valueStr, out result); if ((result == ReadFromItemResultEnum.ok) || (result == ReadFromItemResultEnum.firstFromMultiple)) { try { value = Convert.ToInt64(valueStr); } catch { result = ReadFromItemResultEnum.valuetypeConversionFailed; value = 0; } } else return; }
// Code History: // 2010-12-31 mws // ****************************************************************************** /// <summary> /// Gets inner value of an element/property as string /// </summary> /// <param name="xPath">XPath selecting the element</param> /// <param name="textvalueType">Select innerText or innerXML</param> /// <param name="value">Returned string value</param> /// <param name="result">Returns a ReadFromItemResultEnum value</param> public void GetElemValueAsString( string xPath, ElementTextvalueTypeEnum textvalueType, out string value, out ReadFromItemResultEnum result) { value = string.Empty; result = ReadFromItemResultEnum.ok; if (string.IsNullOrEmpty(xPath)) { result = ReadFromItemResultEnum.emptyXPath; return; } XmlNodeList foundXNL = XmlDoc.SelectNodes(xPath, NsMngr); if (foundXNL.Count == 0) { result = ReadFromItemResultEnum.targetNotFound; return; } if (foundXNL.Count > 1) result = ReadFromItemResultEnum.firstFromMultiple; switch (textvalueType) { case ElementTextvalueTypeEnum.innerText: value = foundXNL[0].InnerText; break; case ElementTextvalueTypeEnum.innerXML: value = foundXNL[0].InnerXml; break; } }
// Code History: // 2014-02-24 mws // ****************************************************************************** /// <summary> /// Gets one or more element(s)/property(ies) as XmlNodeList /// </summary> /// <param name="xPath">XPath selecting the element(s)</param> /// <param name="resultXNL">Returned XmlNodeList</param> /// <param name="result">Returns a ReadFromItemResultEnum value</param> public void GetElemsAsXNodeList( string xPath, out XmlNodeList resultXNL, out ReadFromItemResultEnum result) { resultXNL = null; result = ReadFromItemResultEnum.ok; if (string.IsNullOrEmpty(xPath)) { result = ReadFromItemResultEnum.emptyXPath; return; } resultXNL = XmlDoc.SelectNodes(xPath, NsMngr); }
// Code History: // 2014-02-26 mws // ****************************************************************************** /// <summary> /// Gets all attributes of an element/property as Dictionary /// </summary> /// <param name="xPath">XPath selecting the element</param> /// <param name="dictionary">Returns the attributes as Dictionary of string key/value pairs</param> /// <param name="result">Returns a ReadFromItemResultEnum value</param> public void GetElemAttribsAsDictionary( string xPath, out Dictionary<string, string> dictionary, out ReadFromItemResultEnum result) { dictionary = new Dictionary<string, string>(); result = ReadFromItemResultEnum.ok; if (string.IsNullOrEmpty(xPath)) { result = ReadFromItemResultEnum.emptyXPath; return; } XmlNodeList foundXNL = XmlDoc.SelectNodes(xPath, NsMngr); if (foundXNL.Count == 0) { result = ReadFromItemResultEnum.targetNotFound; return; } if (foundXNL.Count > 1) result = ReadFromItemResultEnum.firstFromMultiple; XmlElement foundXE = (XmlElement)foundXNL[0]; for (int idx = 0; idx < foundXE.Attributes.Count; idx++) { string attrName = foundXE.Attributes[idx].LocalName; string attrValue = foundXE.Attributes[idx].Value; dictionary.Add(attrName, attrValue); } if (!string.IsNullOrEmpty(foundXE.InnerText)) dictionary.Add("thisValue", foundXE.InnerText); }
// Code History: // 2014-02-24 mws // ****************************************************************************** /// <summary> /// Gets an element/property as XmlElement /// </summary> /// <param name="xPath">XPath selecting the element</param> /// <param name="resultXE">Returned XmlElement</param> /// <param name="result">Returns a ReadFromItemResultEnum value</param> public void GetElemAsXE( string xPath, out XmlElement resultXE, out ReadFromItemResultEnum result) { resultXE = null; result = ReadFromItemResultEnum.ok; if (string.IsNullOrEmpty(xPath)) { result = ReadFromItemResultEnum.emptyXPath; return; } XmlNodeList foundXNL = XmlDoc.SelectNodes(xPath, NsMngr); if (foundXNL.Count == 0) { result = ReadFromItemResultEnum.targetNotFound; return; } if (foundXNL.Count > 1) result = ReadFromItemResultEnum.firstFromMultiple; resultXE = (XmlElement)foundXNL[0]; }
// Code History: // 2010-12-31 mws // ****************************************************************************** // ****************************************************************************** /// <summary> /// Gets an attribute's value of an element/property as string /// </summary> /// <param name="xPath">XPath selecting the element</param> /// <param name="attribname">Name of the attributes</param> /// <param name="value">Returned string value</param> /// <param name="result">Returns a ReadFromItemResultEnum value</param> public void GetAttribValueAsString( string xPath, string attribname, out string value, out ReadFromItemResultEnum result) { value = string.Empty; result = ReadFromItemResultEnum.ok; if (string.IsNullOrEmpty(xPath)) { result = ReadFromItemResultEnum.emptyXPath; return; } if (string.IsNullOrEmpty(attribname)) { result = ReadFromItemResultEnum.emptyXPath; return; } XmlNodeList foundXNL = XmlDoc.SelectNodes(xPath, NsMngr); if (foundXNL.Count == 0) { result = ReadFromItemResultEnum.targetNotFound; return; } if (foundXNL.Count > 1) result = ReadFromItemResultEnum.firstFromMultiple; value = ((XmlElement) foundXNL[0]).GetAttribute(attribname); }
// Code History: // 2010-12-31 mws // ****************************************************************************** /// <summary> /// Gets an attribute's value of an element/property as int64 /// </summary> /// <param name="xPath">XPath selecting the element</param> /// <param name="attribname">Name of the attributes</param> /// <param name="value">Returned int64 value</param> /// <param name="result">Returns a ReadFromItemResultEnum value</param> public void GetAttribValueAsInt64( string xPath, string attribname, out Int64 value, out ReadFromItemResultEnum result) { value = 0; string valueStr; GetAttribValueAsString(xPath, attribname, out valueStr, out result); if ((result == ReadFromItemResultEnum.ok) || (result == ReadFromItemResultEnum.firstFromMultiple)) { try { value = Convert.ToInt64(valueStr); } catch { result = ReadFromItemResultEnum.valuetypeConversionFailed; value = 0; } } else return; }