public virtual string ReadInnerXml ()
{
if (ReadState != ReadState.Interactive || NodeType == XmlNodeType.EndElement)
return String.Empty;
if (IsEmptyElement) {
Read ();
return String.Empty;
}
StringWriter sw = new StringWriter ();
XmlTextWriter xtw = new XmlTextWriter (sw);
if (NodeType == XmlNodeType.Element) {
int startDepth = Depth;
Read ();
while (startDepth < Depth) {
if (ReadState != ReadState.Interactive)
throw XmlError ("Unexpected end of the XML reader.");
xtw.WriteNode (this, false);
}
// reader is now end element, then proceed once more.
Read ();
}
else
xtw.WriteNode (this, false);
return sw.ToString ();
}