plistElement->SetAttribute("version", "1.0”);
读属性
float value=0.1;
rootEle->QueryFloatAttribute("version",&value);
//设置version的属性值
rootEle->SetAttribute("version",1.4);
5⃣️命名空间:用于一个XML文档中提供名字唯一的元素和属性,一般定义在元素的开始标签中。
形如:<soap:Envelope xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope/">
6⃣️限定名:由命名空间引出的概念,定义了元素和属性的合法标识符。通常在xml文档中用作特定元素或属性的引用。
一般存在于开始标签的开头,如<soap:Body>...</soap:Body>;
解析方式1⃣️-SAX解析
无需导头文件
特点:基于事件驱动的解析方式;只能读,不能写;编程难;解析速度快;ios官方重点推荐。
两个类:SAXParser类和SAXDelegator,SAXDelegator是个抽象类,是SAXParser的委托对象,他们的设计基于委托设计模式。
工作原理:SAXDelegator提供接口,定义很多回调函数,解析工作在SAXDelegator子类中完成,遍历过程中,遇到开始,结束标签和字符串等,都会触发这些函数。在子类中实现这些抽象函数。
重点:三个触发函数:
virtual void startElement(void *ctx, const char *name, const char **atts) = 0;
//遇到一个开始标签时触发.ctx:上下文对象,实质就是SAXParser对象,name是元素名字,atts为元素实现
virtual void endElement(void *ctx, const char *name) = 0;
//遇到一个结束标签时触发
virtual void textHandler(void *ctx, const char *s, int len) = 0;
//遇到字符串时触发,ctx上下文对象,s为遇到的字符串,len字符串长度。
class CC_DLL SAXParser
{
SAXDelegator* _delegator;
public:
SAXParser();
~SAXParser(void</