Files
2026-06-04 11:42:34 +02:00

104 lines
2.5 KiB
C#

using System;
using System.Collections;
using System.Security;
namespace Mono.Xml
{
// Token: 0x020000C7 RID: 199
[CLSCompliant(false)]
public class SecurityParser : MiniParser, MiniParser.IReader, MiniParser.IHandler
{
// Token: 0x060006FB RID: 1787 RVA: 0x00026AEC File Offset: 0x00024CEC
public SecurityParser()
{
this.stack = new Stack();
}
// Token: 0x060006FC RID: 1788 RVA: 0x00026B00 File Offset: 0x00024D00
public void LoadXml(string xml)
{
this.root = null;
this.xmldoc = xml;
this.pos = 0;
this.stack.Clear();
base.Parse(this, this);
}
// Token: 0x060006FD RID: 1789 RVA: 0x00026B38 File Offset: 0x00024D38
public SecurityElement ToXml()
{
return this.root;
}
// Token: 0x060006FE RID: 1790 RVA: 0x00026B40 File Offset: 0x00024D40
public int Read()
{
if (this.pos >= this.xmldoc.Length)
{
return -1;
}
return (int)this.xmldoc[this.pos++];
}
// Token: 0x060006FF RID: 1791 RVA: 0x00026B84 File Offset: 0x00024D84
public void OnStartParsing(MiniParser parser)
{
}
// Token: 0x06000700 RID: 1792 RVA: 0x00026B88 File Offset: 0x00024D88
public void OnStartElement(string name, MiniParser.IAttrList attrs)
{
SecurityElement securityElement = new SecurityElement(name);
if (this.root == null)
{
this.root = securityElement;
this.current = securityElement;
}
else
{
SecurityElement securityElement2 = (SecurityElement)this.stack.Peek();
securityElement2.AddChild(securityElement);
}
this.stack.Push(securityElement);
this.current = securityElement;
int length = attrs.Length;
for (int i = 0; i < length; i++)
{
this.current.AddAttribute(attrs.GetName(i), SecurityElement.Escape(attrs.GetValue(i)));
}
}
// Token: 0x06000701 RID: 1793 RVA: 0x00026C1C File Offset: 0x00024E1C
public void OnEndElement(string name)
{
this.current = (SecurityElement)this.stack.Pop();
}
// Token: 0x06000702 RID: 1794 RVA: 0x00026C34 File Offset: 0x00024E34
public void OnChars(string ch)
{
this.current.Text = SecurityElement.Escape(ch);
}
// Token: 0x06000703 RID: 1795 RVA: 0x00026C48 File Offset: 0x00024E48
public void OnEndParsing(MiniParser parser)
{
}
// Token: 0x0400035F RID: 863
private SecurityElement root;
// Token: 0x04000360 RID: 864
private string xmldoc;
// Token: 0x04000361 RID: 865
private int pos;
// Token: 0x04000362 RID: 866
private SecurityElement current;
// Token: 0x04000363 RID: 867
private Stack stack;
}
}