CMarkup与tinyXml直接解析XML字符串
今天才知道CMarkup可以直接解析字符串形式的XML。以前都是先存入一个文件,然后从文件中load。多做了I/O操作,效率不高。
CMarkup xml;
CString str;
xml.SetDoc(str);
tinyXml也可以直接解析XML字符串,方式如下:
// directly parsing string with tinyxml
const char* content = "<root><elem name=\"aaa\"/></root>";
TiXmlDocument *doc = new TiXmlDocument();
doc->Parse(content);
if (&doc == NULL)
cout << "doc == NULL" << endl;
TiXmlHandle docHandle(doc);
TiXmlNode * root = docHandle.FirstChild("root").ToElement();
TiXmlNode * elemNode = root->FirstChild( "elem" );
TiXmlElement * elemElem = elemNode->ToElement();
cout << elemElem->Attribute("name");
结果是aaa
相关文档:
xml -声明-引发的异常
XML 声明 [XML 标准]
XML 声明通常在 XML 文档的第一行出现。XML 声明不是必选项,但是如果使用 XML 声明,必须在文档的第一行,前面不得包含任何其他内容或空白。
文档映射中的 XML 声明包含下列内容:
版本号 <?xml version="1.0"?>。
这是必选项。尽管以后的 XML 版本可能会更改该 ......
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:XML id="xmlSource">
<node label="grandFather" state="unchecked">
<node label="Father" state="un ......
test.html
———————————————————————————————————————& ......
大量SmipleXML函数可用来加载和解析大量XML文档。
1.simpleXML_load_file()函数来加载指定的XML文件到对象。如果加载文件时遇到问题,则返回FLASE。例:
book.xml文件:
<?xml version="1.0" standalone="yes"?>
<library>
<book>
<title>Pride and Prejudice</title>
< ......