Reading XML Element Contents using XPathDocument





13
Date Submitted Thu. Sep. 14th, 2006 4:58 PM
Revision 1 of 1
Beginner ecliptic
Tags CSharp
Comments 0 comments
This snippet effectively reads an XML document using XPathDocument (read-only) instead of using the DOM. This snippet returns the full element values in between elements. For example:

root element
code element
This is a test.
/code element
/root element

GetXmlString("/root/code"); //returns 'This is a test.'

using System.Xml;
using System.Xml.XPath;       

        private string m_xml_path;
        private string m_xml_filename;       
       
        public string FilePath
        {
            get { return m_xml_path; }
            set { m_xml_path = value; }
        }

        public string FileName
        {
            get { return m_xml_filename; }
            set { m_xml_filename = value; }
        }

        private XPathNavigator CreateNavigator(string path, string filename)
        {
            XPathDocument doc = new XPathDocument(path + filename);                       
            return doc.CreateNavigator();
        }
               
        public string GetXMLString(string xpath)
        {
            string xmlString = null;
            try
            {
                XPathNavigator nav = CreateNavigator(m_xml_path, m_xml_filename);
                XPathNodeIterator iter = nav.Select(xpath);
                iter.MoveNext();
                xmlString = iter.Current.Value;
                iter = null;
                nav = null;
            }
            catch (XPathException xe)
            {
                throw new XPathException(xe.Message);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }           
            return xmlString;
        }
 

Clay Zuvich

Comments

There are currently no comments for this snippet.

Voting