Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo utilizar XMLDOMDocument para generar un fragmento de código xml?

¿Cómo utilizar XMLDOMDocument para generar un fragmento de código xml?

1.

BOOL CXmlApp::InitInstance()

{

AfxOleInit()

. ..

}

2

#importar

3. CXmlDlg::OnButton1()

{

// TODO: Agregue el código del controlador de notificaciones de control aquí

MSXML2::IXMLDOMDocumentPtr pDoc

MSXML2::IXMLDOMElementPtr xmlRoot;

//Crear objeto DOMDocument

HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30)); if(!SUCCEEDED(hr))

{

MessageBox("No se puede crear el objeto DOMDocument, verifique si el tiempo de ejecución del analizador MS XML está instalado!"); p>}

//El nombre del nodo raíz es china

pDoc->raw_createElement((_bstr_t)(char*)"china", &xmlRoot

);

pDoc->raw_appendChild(xmlRoot, NULL);

MSXML2::IXMLDOMElementPtr childNode;

pDoc->raw_createElement((_bstr_t)(char*)"Ciudad", &childNode );

childNode->Puttext("WuHan");//Valor del nodo

childNode->setAttribute("population","8,000,000");//Nombre del atributo, atributo valor

childNode->setAttribute("area","10000");

xmlRoot->appendChild(childNode);

pDoc->raw_createElement(( _bstr_t) (char*)"Ciudad", &childNode);

childNode->Puttext("ShangHai");

childNode->setAttribute("población","12.000.000") ;

childNode->setAttribute("area","12000");

xmlRoot->appendChild(childNode);

//Guardar en archivo

//Si no existe, créelo, si existe, sobrescríbalo

pDoc->save("f:\he.xml"); p>}

El he.xml generado es el siguiente:

WuH

unaShangHai

---------------También Hay un ejemplo

#include "stdafx.h"

#include "iostream.h"

#include "msxml.h"

#include "atlbase.h"

#import "msxml.dll" //Introduce la biblioteca de tipos

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__

#endif

int Salir(); >

void LoadFromString();

void CreateXML();

//plantilla de texto XML

_bstr_t XMLTemple=" -11 9 "; /p >

int main()

{

cout << "Programación XML - programa de demostración" << endl

CoInitialize(NULL; ); //Inicializa el entorno COM

cout << "------Generar nuevo texto XML------" << endl

CreateXML();

cout << "------Leer texto XML existente------" << endl

LoadFromString(); >return Salir();

}

void CreateXML()

{

MSXML::IXMLDOMDocumentPtr pDoc;

HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));

if(!SUCCEEDED(hr))

{

cout << "No se puede crear el objeto DOMDocument, verifique si la biblioteca de tiempo de ejecución de MS XML Parser está instalada". << endl

Salir()

}

<; p> MSXML::IXMLDOMElementPtr pDocElement=pDoc->createElement("China");

pDoc->appendChild(pDocElement);

cout << "Generando raíz del árbol:\n " < < pDoc->xml << endl;

MSXML::IXMLDOMElementPtr pNewChildElement;

pNewChildElement=pDoc->createElement("Pekín");

pNewChildElement- >Puttext("-11");

pDocElement->appendCh

ild(pNewChildElement);

cout << "Agregar nodo:\n" << pDoc->xml << endl

pNewChildElement=pDoc->createElement("Shanghái")

pNewChildElement->Puttext("9");

pNewChildElement->setAttribute("Tiempo",_variant_t("Nublado")); ->appendChild(pNewChildElement);

cout << "Agregar otro nodo:\n" << pDoc->xml << endl;

pDocElement->removeChild (pNewChildElement);

cout << "Eliminar el nodo recién agregado:\n" << pDoc->xml << endl

}

void LoadFromString()

{

MSXML::IXMLDOMDocumentPtr pDoc;

HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument)); if(!SUCCEEDED(hr))

{

cout << "No se puede crear el objeto DOMDocument, verifique si el tiempo de ejecución del analizador MS XML está instalado". /p>

Salir();

}

pDoc->loadXML(XMLTemple);

cout << "Leer resultado:\n " << pDoc->xml << endl;

MSXML::IXMLDOMElementPtr pDocElement=pDoc->GetdocumentElement();

MSXML::IXMLDOMElementPtr pElement=pDocElement->selectSingleNode(" Shangai ");

pDocElement->removeChild(pElement);

cout << "Ubicar y eliminar el nodo de Shanghai:\n" << pDoc->xml << endl;

cout << "Guardar el resultado....(sólo simulación)" << endl

cout << "\n Está bien, es así de simple" << endl

}

int Salir()

{

getchar()

return 1;

p>

}