首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

xerces-c,c++解析xml,解析xml字符串,该怎么解决

2012-03-08 
xerces-c,c++解析xml,解析xml字符串我想解析一个xml字符串比如staticconstchar*gXMLInMemBuf\?xmlversi

xerces-c,c++解析xml,解析xml字符串
我想解析一个xml字符串比如
static   const   char*     gXMLInMemBuf   =
"\
<?xml   version= '1.0 '   encoding= 'UTF-8 '?> \n\
<!DOCTYPE   company   [\n\
<!ELEMENT   company           (product,category,developedAt)> \n\
<!ELEMENT   product           (#PCDATA)> \n\
<!ELEMENT   category         (#PCDATA)> \n\
<!ATTLIST   category   idea   CDATA   #IMPLIED> \n\
<!ELEMENT   developedAt   (#PCDATA)> \n\
]> \n\n\
<company   idea= 'great '   id   = '2 '> \n\
        <product   idea= 'great '> XML4C </product> \n\
        <category   idea= 'great '> XML   Parsing   ToolsIBM </category> \n\
        <developedAt   idea= 'great '> \n\
            IBM   Center   for   Java   Technology,   Silicon   Valley,   Cupertino,   CA\n\
        </developedAt> \n\
</company> \
";
而在Dom里面传入的是文件名。我想传入的是字符串该如何解析?有没有人做过类似的,看了部分XERCES-C   api当中sax的方式有一个内存解析的例子,但是在startElement()里面好像文档和实际的编译出来不正确的。  
有没有人做过类似的请指点一下。谢谢

[解决办法]
最简单的做法,定好结构,一个token一个token 读入,就是语法分析,读一个个token就是词法分析.
[解决办法]
比如:
parseDom(){
//readStartToken();
//if (not start token ){
// report error;
//}
//if has attribute, read attribute.
//read value.
//if (has sub){
//parse sub.
//}
...


//readEndToken();

}

随便写写的 :)
[解决办法]
没用过这个,只用过libxml

热点排行