79 lines
No EOL
1.2 KiB
C#
79 lines
No EOL
1.2 KiB
C#
using System;
|
|
using System.Xml;
|
|
using System.Collections;
|
|
using Server;
|
|
|
|
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 )
|
|
{
|
|
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
|
|
{
|
|
get
|
|
{
|
|
return m_Parent;
|
|
}
|
|
}
|
|
|
|
public object[] Children
|
|
{
|
|
get
|
|
{
|
|
return m_Children;
|
|
}
|
|
}
|
|
|
|
public string Name
|
|
{
|
|
get
|
|
{
|
|
return m_Name;
|
|
}
|
|
}
|
|
}
|
|
} |