internal SecurityElement InternalGetElement( ref int position, bool bCreate )
{
if (m_data.Length <= position)
throw new XmlSyntaxException();
if (m_data[position++] != c_element)
throw new XmlSyntaxException();
SecurityElement elCurrent = null;
String strTag = GetString( ref position, bCreate );
if (bCreate)
elCurrent = new SecurityElement( strTag );
while (m_data[position] == c_attribute)
{
position++;
String strName = GetString( ref position, bCreate );
String strValue = GetString( ref position, bCreate );
if (bCreate)
elCurrent.AddAttribute( strName, strValue );
}
if (m_data[position] == c_text)
{
position++;
String strText = GetString( ref position, bCreate );
if (bCreate)
elCurrent.m_strText = strText;
}
while (m_data[position] != c_children)
{
SecurityElement elChild = InternalGetElement( ref position, bCreate );
if (bCreate)
elCurrent.AddChild( elChild );
}
position++;
return elCurrent;
}