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的值为2VC中:
pDoc指针已经正常获得
IXMLDOMNodeList *list;
list = pDoc->getElementByName("a")  //list指针的值已经有了,一般都是同一个值0x008a4500
int len = list.length;   //得到的值始终为0,哪位大侠知道怎么回事

解决方案 »

  1.   

    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();
    }
      

  2.   

    你在没save之前,load的内容还是以前的内容。它不是动态更新的
      

  3.   

    不管异步还是同步,VB行的VC就不行?
      

  4.   

    异步的意思就是你要等待事件再访问XML DOM
    你也可以用同步模式,这样Load调用之后就可以读DOM了