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