¡Primeros auxilios! Utilice mfc para leer documentos XML en vc
{
CoInitialize(NULL); // Inicializa la interfaz COM
MSXML2::IXMLDOMDocumentPtr pDoc; p>
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
if(!SUCCEEDED(hr))
{
MessageBox("¡Error!");
Retorno;
}
hr = pDoc->loadXML(L "E:\conmxl.xml")
if(FAILED(hr))
{
MessageBox("¡No se pudo cargar el documento XML en el analizador!"))
Retorno;
}
MSXML2::IXMLDOMElementPtr childNode;
childNode=NULL;
hr =pDoc-> selectSingleNode("//ROOT //Root1//Root2");
if ( FAILED(hr) )
{
MessageBox("No se pudo localizar el nodo 'Root3'");
return;
}
childNode = (MSXML2:.IXMLDOMElementPtr)(pDoc->selectSingleNode("//Root2 "));
MSXML2::DOMNodeType nodeType;
childNode->get_nodeType(&nodeType);
// El error de depuración en este lado muestra childNode = 0x00000 (es decir, vacío)
// No sé si lo siguiente es correcto, por favor ayúdenme
MSXML2::IXMLDOMNamedNodeMapPtr pAttrs = NULL;
MSXML2 ::IXMLDOMNodeListPtr nodeList;
MSXML2::IXMLDOMNodePtr pAttrItem;
childNode->get_attributes(&pAttrs);
childNode->get_childNodes(&nodeList);
long nCount , iCount;
pAttrs->get_length(&nCount); //obtiene el número de atributos de nodo
nodeList->get_length(&iCount); de atributos de nodo
//¿Para qué se usan los dos valores aquí?
// Esta es la primera vez que entro en contacto con archivos xml y no sé nada al respecto. así que por favor ayúdame a explicarlo.
//El código proviene de un blog
for(int i = 0; i < iCount; i++).
) //Puedes agregar datos al ListControl según sea necesario
{
for(int j = 0; j < nCount; j++)
{ p>
pAttrs->get_item(j, &pAttrItem);
CString strAttrName = (char*)(_bstr_t)pAttrItem->nodeName;
CString strAttrValue = (char* )(_bstr_t)pAttrItem->nodeTypedValue;
m_list.InsertItem(i, strAttrName);
m_list.SetItemText(i, 1, strAttrValue);
}
}
}
Míralo~~