在我们的VC工程中需要将已存在的xml文件读入内存并进行解析,这个过程中我们用到的是xerces解析器,并在将xml文件读入内存的函数中使用了如下语句......//省略部分
XercesDOMParser *parser = new XercesDOMParser;
try    {
        parser->parse(XMLString::transcode(name));
        DOMDocument *m_pStatic =parser->getDocument();
    }
.......//省略部分其中name是函数传入的参数,记录的是xml文件的详细路径名称,当name中不包含中文的时候,程序可以正常解析通过,当name中包含中文(即存在包含中文的路径名称)时,执行到try{}内部语句就会出现错误。
求教各位高人给予解决方案,究竟是什么问题造成这种错误的出现,请帮忙解决一下,谢谢。

解决方案 »

  1.   

    请问如何利用Xerces 与vc结合来解析xml
    我开始学的时间用msxml现在想学学Xerces 但不知道怎么与vc 结合?
    谢谢
    up
      

  2.   

    Xerces的源代码可以从appache网站上下到,分已经编译好的和没有编译的,对于编译好的解析器,可以用里面的.dll,和.lib文件,这需要在你的VC工程的setting里设置一下路径,使你的工程可以找到所使用的解析器的API函数所在的头文件,另外在源代码中有一个sample文件夹,里面包含了一些经常使用的例子,还有一个比较重要的参考资料就是readme.html文件,它相当于一个msdn里面对解析器所包括的API函数都有详细的讲解,是一个很好的参考手册。最后提供一个网址,上面有很多关于xerces解析器的使用的好文章,其中有《充分利用 Xerces-C++》《剖析Xml4C源码,完美兼容中文XML》等文章http://www-900.ibm.com/developerworks/cn/xml
      

  3.   

    头上加<?xml version='1.0' encoding='GB2312'?>就不会出错了,可惜还是不能解析