SequelMax.NET 项目简介
SequelMax.NET 是一个 .NET 的 XML 解析库,使用全新的 SAX 解析模式。SequelMax.NET 移植自 C++ 版本的 SequelMax 解析库。示例代码:static bool ReadDoc(string file, List<Employee> list)
{
SequelMaxNet.Document doc = new SequelMaxNet.Document();
doc.RegisterStartElementDelegate("Employees|Employee", (elem) =>
{
Employee emp = new Employee();
emp.EmployeeID = elem.Attr("EmployeeID").GetInt32(0);
emp.SupervisorID = elem.Attr("SupervisorID").GetInt32(0);
list.Add(emp);
});
doc.RegisterEndElementDelegate("Employees|Employee|Name", (text) =>
{
list[list.Count - 1].Name = text;
});
doc.RegisterEndElementDelegate("Employees|Employee|Gender", (text) =>
{
list[list.Count - 1].Gender = text;
});
doc.RegisterEndElementDelegate("Employees|Employee|Salary", (text) =>
{
Double.TryParse(text, out list[list.Count - 1].Salary);
});
doc.RegisterCommentDelegate("Employees|Employee", (text) =>
{
list[list.Count - 1].Comment = text;
});
return doc.Open(file);
}
{
SequelMaxNet.Document doc = new SequelMaxNet.Document();
doc.RegisterStartElementDelegate("Employees|Employee", (elem) =>
{
Employee emp = new Employee();
emp.EmployeeID = elem.Attr("EmployeeID").GetInt32(0);
emp.SupervisorID = elem.Attr("SupervisorID").GetInt32(0);
list.Add(emp);
});
doc.RegisterEndElementDelegate("Employees|Employee|Name", (text) =>
{
list[list.Count - 1].Name = text;
});
doc.RegisterEndElementDelegate("Employees|Employee|Gender", (text) =>
{
list[list.Count - 1].Gender = text;
});
doc.RegisterEndElementDelegate("Employees|Employee|Salary", (text) =>
{
Double.TryParse(text, out list[list.Count - 1].Salary);
});
doc.RegisterCommentDelegate("Employees|Employee", (text) =>
{
list[list.Count - 1].Comment = text;
});
return doc.Open(file);
}