关于读XML字串的一个小问题。

door_proxy 2005-12-16 10:04:48
VB中:
dim doc
set doc = CreateObject("Microsoft.MSXML2")
dim str as string
str = "<root><a>aa</a><a>bb</a></root>"
doc.loadXML str
dim list as IXMLDOMNodeList
set list = doc.getElementByName("a")
dim length as integer
length = list.length //可以得到length的值为2

VC中:
pDoc指针已经正常获得
IXMLDOMNodeList *list;
list = pDoc->getElementByName("a") //list指针的值已经有了,一般都是同一个值0x008a4500
int len = list.length; //得到的值始终为0,哪位大侠知道怎么回事
...全文
125 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloIvan2005 2005-12-19
  • 打赏
  • 举报
回复
mark
anothervip 2005-12-16
  • 打赏
  • 举报
回复
getElementsByTagName?

msdn上的例子:

<?xml version='1.0'?>
<COLLECTION
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<DATE dt:dt="datetime">1998-10-13T15:56:00</DATE>
<BOOK>
<TITLE>Lover Birds</TITLE>
<AUTHOR>Cynthia Randall</AUTHOR>
<PUBLISHER>Lucerne Publishing</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>The Sundered Grail</TITLE>
<AUTHOR>Eva Corets</AUTHOR>
<PUBLISHER>Lucerne Publishing</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>Splish Splash</TITLE>
<AUTHOR>Paula Thurman</AUTHOR>
<PUBLISHER>Scootney</PUBLISHER>
</BOOK>
</COLLECTION>

#import "msxml3.dll"
using namespace MSXML2;

inline void TESTHR( HRESULT _hr )
{ if FAILED(_hr) throw(_hr); }

void XMLDOMNodeListSample()
{
try {
IXMLDOMDocumentPtr docPtr;
IXMLDOMNodeListPtr NodeListPtr;
IXMLDOMNodePtr DOMNodePtr;

//init
TESTHR(CoInitialize(NULL));
TESTHR(docPtr.CreateInstance("Msxml2.DOMDocument.5.0"));

// load a document
_variant_t varXml("C:\\book.xml");
_variant_t varOut((bool)TRUE);
varOut = docPtr->load(varXml);
if ((bool)varOut == FALSE)
throw(0);
NodeListPtr = docPtr->getElementsByTagName("AUTHOR");
MessageBox(NULL, _bstr_t(NodeListPtr->length), _T("Node List length"), MB_OK);
} catch(...)
{
MessageBox(NULL, _T("Exception occurred"), _T("Error"), MB_OK);
}
CoUninitialize();
}
door_proxy 2005-12-16
  • 打赏
  • 举报
回复
door_proxy 2005-12-16
  • 打赏
  • 举报
回复
高手来呀
蒋晟 2005-12-16
  • 打赏
  • 举报
回复
异步的意思就是你要等待事件再访问XML DOM
你也可以用同步模式,这样Load调用之后就可以读DOM了
dingpiao 2005-12-16
  • 打赏
  • 举报
回复
没干过,up
door_proxy 2005-12-16
  • 打赏
  • 举报
回复
不管异步还是同步,VB行的VC就不行?
door_proxy 2005-12-16
  • 打赏
  • 举报
回复
那该怎么做?
bjskyhorse 2005-12-16
  • 打赏
  • 举报
回复
你在没save之前,load的内容还是以前的内容。它不是动态更新的
蒋晟 2005-12-16
  • 打赏
  • 举报
回复
默认的Load是异步的

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧