62 lines
No EOL
1.1 KiB
C#
62 lines
No EOL
1.1 KiB
C#
using System.Xml;
|
|
using System.Collections;
|
|
|
|
namespace Server.Gumps
|
|
{
|
|
public class ParentNode
|
|
{
|
|
private ParentNode m_Parent;
|
|
private object[] m_Children;
|
|
|
|
private string m_Name;
|
|
|
|
public ParentNode( XmlTextReader xml, ParentNode parent )
|
|
{
|
|
m_Parent = parent;
|
|
|
|
Parse( xml );
|
|
}
|
|
|
|
private void Parse( XmlTextReader xml )
|
|
{
|
|
if ( xml.MoveToAttribute( "name" ) )
|
|
m_Name = xml.Value;
|
|
else
|
|
m_Name = "empty";
|
|
|
|
if ( xml.IsEmptyElement )
|
|
{
|
|
m_Children = new object[0];
|
|
}
|
|
else
|
|
{
|
|
ArrayList children = new ArrayList();
|
|
|
|
while ( xml.Read() && ( xml.NodeType == XmlNodeType.Element || xml.NodeType == XmlNodeType.Comment ) )
|
|
{
|
|
if ( xml.NodeType == XmlNodeType.Comment )
|
|
continue;
|
|
|
|
if ( xml.Name == "child" )
|
|
{
|
|
ChildNode n = new ChildNode( xml, this );
|
|
|
|
children.Add( n );
|
|
}
|
|
else
|
|
{
|
|
children.Add( new ParentNode( xml, this ) );
|
|
}
|
|
}
|
|
|
|
m_Children = children.ToArray();
|
|
}
|
|
}
|
|
|
|
public ParentNode Parent => m_Parent;
|
|
|
|
public object[] Children => m_Children;
|
|
|
|
public string Name => m_Name;
|
|
}
|
|
} |