描述:
我想写一个ATL用到ASP网页中去读取一个XML文档的内容,部份代码如下:
Cgetpara{
MSXML2::IXMLDOMDocumentPtr xmlDoc(_uuidof(MSXML2::DOMDocument));
xmlDoc->load("c:\\test.xml");
CString mstring;
mstring = "/test/test1/name";
name = xmlDoc->selectSingleNode((_bstr_t)mstring)->text ;
mstring = "/test/test1/age";
age = xmlDoc->selectSingleNode((_bstr_t)mstring)->text ;
}
STDMETHODIMP Cgetpara::get_name(BSTR *pVal)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
*pVal = name;
return S_OK;
}
STDMETHODIMP Cgetpara::get_age(BSTR *pVal)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
*pVal = age;
return S_OK;
}
这里假设xml文档里name="joan",age="33"
可是等我在ASP中测试的时候如:
set mytest = server.createobject("myproject.getpara")
respnose.write mytest.name
response.write mytest.age
结果是先出来的
AddRef
AddRef
再次刷新得到结果:
33
33
和预料中的
joan
333
大不相同,如果我要是颠倒Cgetpara中的代码顺序为
mstring = "/test/test1/age";
age = xmlDoc->selectSingleNode((_bstr_t)mstring)->text ;
mstring = "/test/test1/name";
name = xmlDoc->selectSingleNode((_bstr_t)mstring)->text ;
则ASP中引用的结果是
joan
joan
谁经历过这样的问题,请指教!