private string ReadContentString (bool isText)
{
if (isText) {
switch (NodeType) {
case XmlNodeType.Text:
case XmlNodeType.SignificantWhitespace:
case XmlNodeType.Whitespace:
case XmlNodeType.CDATA:
break;
case XmlNodeType.Element:
throw new InvalidOperationException (String.Format ("Node type {0} is not supported in this operation.{1}", NodeType, GetLocation ()));
default:
return String.Empty;
}
}
string value = String.Empty;
do {
switch (NodeType) {
case XmlNodeType.Element:
if (isText)
return value;
throw XmlError ("Child element is not expected in this operation.");
case XmlNodeType.EndElement:
return value;
case XmlNodeType.Text:
case XmlNodeType.CDATA:
case XmlNodeType.SignificantWhitespace:
case XmlNodeType.Whitespace:
value += Value;
break;
}
} while (Read ());
throw XmlError ("Unexpected end of document.");
}