libxml库提供了一些.net风格的函数,以流的形式来读取并分析xml文件.
<libxml/xmlreader.h>
xmlTextReader xmlTextReaderPtr //XmlReader的结构体及其指针
xmlTextReaderPtr xmlReaderForFile (const char * filename, const char * encoding, int options) //打开一个xml文件并返回xmlreader对象,准备开始分析.
int xmlTextReaderRead (xmlTextReaderPtr reader) //读取下一个节点(注意,是下一个,不是下一个同层节点)
int xmlTextReaderNext (xmlTextReaderPtr reader) //读取下一个同层节点
int xmlTextReaderNodeType (xmlTextReaderPtr reader) //判断当前节点的类型
xmlChar *xmlTextReaderGetAttribute (xmlTextReaderPtr reader, const xmlChar * name) //获取当前节点的指定属性
xmlChar *xmlTextReaderReadString (xmlTextReaderPtr reader) //读取当前节点下的text
xmlNodePtr xmlTextReaderExpand (xmlTextReaderPtr reader) //将当前节点展开成一个节点对象(慎用)
int xmlTextReaderHasValue (xmlTextReaderPtr reader) //判断当前节点是否有text值
int xmlTextReaderHasAttributes (xmlTextReaderPtr reader) //判断当前节点是否包含属性
int xmlTextReaderMoveToAttribute (xmlTextReaderPtr reader, const xmlChar * name) //移动指针到当前节点的指定属性名的属性
int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader, int no) //移动指针到当前节点指定属性编号的属性
int xmlTextReaderMoveToElement (xmlTextReaderPtr reader) //将指针移会当前节点
int xmlTextReaderMoveToFirstAttribute (xmlTextReaderPtr reader) //将指针移动到当前节点的第一个属性
int xmlTextReaderMoveToNextAttribute (xmlTextReaderPtr reader) //将指针移动到当前节点的下一个属性
xmlChar *xmlTextReaderName (xmlTextReaderPtr reader) //返回当前节点的名字