有个XML文件如下<name>
<chineseName>张三</chineseName>
<englishName>David</englishName>
</name>要求非常简单,查询张三,返回子结点的TEXT内容David我现在的环境是裸的VC6.0
这个代码很简单,但是我想知道环境怎么配置,要下载点什么文件
头文件怎么写,文件怎么分配,最好给我个直接能用的工程,万分感激
[email protected]

解决方案 »

  1.   


    ////////////////////////////////////////////////////////////
    // Source code#include <iostream>#include <windows.h>
    #include <objbase.h>#import "msxml4.dll"   // 如果没有这个文件,那么请用msxml3.dll, 如果还没有,请用 msxml2.dll, 还没有有话.... 我没话说了
    using namespace MSXML2;using namespace std;class CComInit
    {
    public:
    CComInit() { ::CoInitialize(NULL); }
    ~CComInit() { ::CoUninitialize(); }
    };void main()
    {
    CComInit cominit;
    IXMLDOMDocumentPtr   xml;
    if(FAILED(xml.CreateInstance(__uuidof(DOMDocument30))))
    {
    cerr << "Create XML Document Failed! " << endl;
    return;
    }
    const char* strxml = "<Root>\r\n<NEAR  id=\"70001\">\r\n" \
                           "<Name>1JJ</Name>\r\n"  \
                           "<Style>70000</Style>\r\n"  \
                           "<Status>0</Status>\r\n</NEAR>\r\n</Root>\r\n";
    try{
    xml->loadXML(strxml);
    IXMLDOMElementPtr elm = xml->documentElement;
    //cout << (const char*)elm->xml; 
    //if(elm->hasChildNodes()
    cout << "NODE:" << (const char*)elm->childNodes->item[0]->nodeName << endl;
    cout << "ATTRIB: id = " << (const char*)elm->childNodes->item[0]->attributes->getNamedItem("id")->text << endl;
    cout << "Children:" << endl;
    IXMLDOMNodeListPtr  list = elm->childNodes->item[0]->childNodes;
    for(int i = 0; i < list->length; ++i)
    {
    cout << (const char*)list->item[i]->nodeName << " = " 
    << (const char*)list->item[i]->text << endl;
    }
    }
    catch(_com_error& ce)
    {
    cerr << "COM ERROR (0x" << hex << ce.Error() << dec << ") : " 
    << ce.ErrorMessage() << endl;
    }
    return;
      

  2.   

    上面的程序在编译时要注意什么?怎么编译不过去,(vs.net 2003),这是怎么回事?
      

  3.   

    上面的程序不需要注意什么.为什么编译不过去我也不知道.因为我是在VC6.0下写的.
    我认为 VS2003是垃圾, SORRY!
      

  4.   

    谢谢边城浪子,程序我终于泡通了,感动的想哭了不过有点小问题,就是,我要求是对XML操作
    您的这段代码我有点疑问
    const char* strxml = "<Root>\r\n<NEAR  id=\"70001\">\r\n" \
                           "<Name>1JJ</Name>\r\n"  \
                           "<Style>70000</Style>\r\n"  \
                           "<Status>0</Status>\r\n</NEAR>\r\n</Root>\r\n";
    能否改成对一个XML文件的操作
    能不能麻烦您吧整个工程文件连着XML文件一起发给我~?实在太感谢!
    <name>  
    <chineseName>张三</chineseName>  
    <englishName>David</englishName>  
    </name>  
      

  5.   

    最后点,我怎么去做查询??就是我现在连XML结构都不知道的情况下
    查找“张三”,然后返回englishName的内容就是一个查询的工作
    不知道该怎么实现????