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; } } }