Mega Code Archive

 
Categories / C# / XML
 

Gets the text value from the element located by the given XPath

/*  * RegExpress  *   * Copyright (c) 2010, Daniel McGaughran  *   * Licensed under the Apache Licence, Version 2.0 (the "Licence");  * you may not use this file except in compliance with the Licence.  * You may obtain a copy of the License at  *   *   http://www.apache.org/licenses/LICENSE-2.0  *   * Unless required by applicable law or agreed to in writing, software  * distributed under the Licence is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the Licence for the specific language governing permissions and  * limitations under the Licence.  *   */ using System; using System.Xml; namespace RegExpressModel.Utility {   static class XmlUtility   {     /// <summary>     /// Gets the text value from the element located by the given XPath.     /// </summary>     /// <param name="sourceNode">The source element.</param>     /// <param name="xPath">The XPath of the parent element.</param>     /// <returns>The (first) string value if found. If the source element or XPath is invalid, null will     /// be returned.</returns>     internal static string GetTextValue(this XmlNode sourceNode, string xPath)     {       if (sourceNode == null || String.IsNullOrEmpty(xPath))         return null;       XmlNode targetParent = sourceNode.SelectSingleNode(xPath);       string value = "";       if (targetParent != null)       {         XmlNodeList children = targetParent.ChildNodes;         foreach(XmlNode childNode in children)         {           if (childNode is XmlText || childNode is XmlCDataSection)           {             value = childNode.Value;             break;           }         }       }       return value;     }   } }