fastdo  0.5.12
eienml::ElemParser类 参考

元素解析处理器 更多...

#include <elem_parser.hpp>

Public 成员函数

 ElemParser (ElemPackage const &package)
 
ElementparseEx (winux::AnsiString s, Element *container) const
 V2 解析成元素 更多...
 
DocumentparseEx (winux::AnsiString s, DocumentCreator docCreator=NULL) const
 V2 解析成文档 更多...
 
int findDelimPair (winux::AnsiString const &str, int offset, int *length, winux::AnsiString *internalData, winux::AnsiString *lDelim, winux::AnsiString *rDelim) const
 V2 寻找一对边界符内容,并返回边界符种类,和未经解析的内部数据 更多...
 
int search (winux::AnsiString const &str, int *length, winux::AnsiString *data, bool *isBlock, bool *isHead, winux::AnsiString *tagName) const
 V2 搜一个在标签包中存在的标签,并返回标签种类和未经解析的内部数据 更多...
 
void readElement (winux::AnsiString data, winux::AnsiString *tagName, winux::AnsiString *defAttr, Attributes *attrs) const
 V2 读一个元素标签属性数据 更多...
 
void readBlock (winux::AnsiString const &data, winux::AnsiString *blockTag, winux::AnsiString *blockContent) const
 V2 读一个块标签数据 更多...
 
Elementparse (winux::AnsiString s, Element *container) const
 V1 解析成元素 更多...
 
Documentparse (winux::AnsiString s, DocumentCreator docCreator=NULL) const
 V1 解析成文档 更多...
 
int searchElement (winux::AnsiString const &str, int *length=NULL) const
 V1 搜一个支持的element. 更多...
 
int searchDelim (winux::AnsiString const &str, int offset, int *length=NULL) const
 V1 搜索 [...] 这个串, 返回其开始位置,否则返回-1, length表示搜到的长度 更多...
 
bool isHeader (winux::AnsiString const &str, winux::AnsiString *data=NULL) const
 V1 判断一个[...] 是头还是尾, data返回去掉界定符后的内容 更多...
 
void read (winux::AnsiString const &str, winux::AnsiString *tagName=NULL, winux::AnsiString *defAttr=NULL, Attributes *attrs=NULL) const
 V1 读取一个[...]内的数据 更多...
 

详细描述

元素解析处理器

存在两个接口,一个不考虑块解析V1 parse(),一个考虑块解析V2 parseEx()

在文件 elem_parser.hpp10 行定义.

构造及析构函数说明

eienml::ElemParser::ElemParser ( ElemPackage const &  package)

成员函数说明

int eienml::ElemParser::findDelimPair ( winux::AnsiString const &  str,
int  offset,
int *  length,
winux::AnsiString internalData,
winux::AnsiString lDelim,
winux::AnsiString rDelim 
) const

V2 寻找一对边界符内容,并返回边界符种类,和未经解析的内部数据

参数
*length返回搜到的长度,包括边界符
*internalData返回内部数据,即去掉边界符的内容
lDelim,rDelim返回定界符
bool eienml::ElemParser::isHeader ( winux::AnsiString const &  str,
winux::AnsiString data = NULL 
) const

V1 判断一个[...] 是头还是尾, data返回去掉界定符后的内容

Element* eienml::ElemParser::parse ( winux::AnsiString  s,
Element container 
) const

V1 解析成元素

搜索一个[...], 把前面的字符当作文本元素存入, 遇到一个[...], 如果是头,则新建元素,解析属性

Document* eienml::ElemParser::parse ( winux::AnsiString  s,
DocumentCreator  docCreator = NULL 
) const

V1 解析成文档

Element* eienml::ElemParser::parseEx ( winux::AnsiString  s,
Element container 
) const

V2 解析成元素

Document* eienml::ElemParser::parseEx ( winux::AnsiString  s,
DocumentCreator  docCreator = NULL 
) const

V2 解析成文档

void eienml::ElemParser::read ( winux::AnsiString const &  str,
winux::AnsiString tagName = NULL,
winux::AnsiString defAttr = NULL,
Attributes attrs = NULL 
) const

V1 读取一个[...]内的数据

void eienml::ElemParser::readBlock ( winux::AnsiString const &  data,
winux::AnsiString blockTag,
winux::AnsiString blockContent 
) const

V2 读一个块标签数据

void eienml::ElemParser::readElement ( winux::AnsiString  data,
winux::AnsiString tagName,
winux::AnsiString defAttr,
Attributes attrs 
) const

V2 读一个元素标签属性数据

int eienml::ElemParser::search ( winux::AnsiString const &  str,
int *  length,
winux::AnsiString data,
bool *  isBlock,
bool *  isHead,
winux::AnsiString tagName 
) const

V2 搜一个在标签包中存在的标签,并返回标签种类和未经解析的内部数据

参数
*length返回搜到的长度,包括边界符
*data返回内部数据,即去掉多余的内容,例如'/'
*isBlock指示是否为块标签
*isHead指示搜到的标签是否是一个开头
*tagName当*isBlock==false时,返回元素名
int eienml::ElemParser::searchDelim ( winux::AnsiString const &  str,
int  offset,
int *  length = NULL 
) const

V1 搜索 [...] 这个串, 返回其开始位置,否则返回-1, length表示搜到的长度

int eienml::ElemParser::searchElement ( winux::AnsiString const &  str,
int *  length = NULL 
) const

V1 搜一个支持的element.


该类的文档由以下文件生成: