|
|
|
Reading XML Element Contents using XPathDocument
14
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.'
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;
}




There are currently no comments for this snippet.