Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo escribir un archivo XML simple en lenguaje C?

¿Cómo escribir un archivo XML simple en lenguaje C?

Usando VC, aquí hay un ejemplo, puede consultar:

void?CreateXml()

{

CoInitialize(NULL ) ;

/?Crear documento

MSXML2::IXMLDOMDocument2Ptr?pXMLDoc?=?NULL;

//Crear objeto DOMDocument

HRESULT ?hr?=?pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument));

if(!SUCCEEDED(hr))

{

return

}

//?

MSXML2::IXMLDOMProcessingInstructionPtr?pXMLProc?=?NULL;

pXMLProc?=?pXMLDoc- > createProcessingInstruction("xml",?" version='1.0'?encoding='UTF-8'");

_variant_t?vNullVal;

vNullVal.vt?=?VT_NULL

pXMLDoc->insertBefore(pXMLProc, ?vNullVal);

/?Crear nodo raíz

_variant_t?varNodeType((short)MSXML2::NODE_ELEMENT)

MSXML2::IXMLDOMNodePtr?pXMLNodeRoot=?NULL;?

pXMLNodeRoot?=?pXMLDoc->createNode(varNodeType,?_T("Casos"),?_T("" ) );

/?Agregar nodo raíz

pXMLDoc->appendChild(pXMLNodeRoot);

/?Crear y agregar nodos subordinados

MSXML2::IXMLDOMNodePtr?pXMLNodeNode=?NULL;?

pXMLNodeNode?=?pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Case"));

/? Crear nodo de elemento subordinado

MSXML2::IXMLDOMElementPtr?pXMLEle?=?NULL;

pXMLEle?=?pXMLDoc->createElement(_T("CopyFile")))

/?Crear y establecer atributos de nodo subordinado

MSXML2::IXMLDOMAttributePtr?pXMLAttr?=?NULL;

pXMLAttr?=?pXMLDoc->createAttribute(_T("src" ) );

pXMLAttr->nodeTypedValue?=?"C:\test.txt";

pXMLLele->atributos->setNamedItem(pXMLAttr);

pXMLAttr?=?pXMLDoc->createAttribute(_T("dest"));< ​​/p>

pXMLAttr->nodeTypedValue?=?"D:\\Test.

txt";

pXMLEle->atributos->setNamedItem(pXMLAttr);

//?Agregar nodo de elemento

pXMLNodeNode->appendChild(?pXMLEle);

MSXML2::IXMLDOMElementPtr?pXMLEle1?=?NULL;

pXMLEle1?=?pXMLDoc->createElement(_T("DelFile"));

pXMLEle1 ->appendChild(pXMLDoc->createTextNode("C:\\test.txt"));

/?Agregar nodo de elemento

pXMLNodeNode->appendChild(?pXMLEle1); /p>

//?Guardar documento

pXMLDoc->save(_T("d:\Test.xml"));

}

El efecto es el siguiente:

?

>p>

?

C :\test .txt?

Para que MFC reconozca MSXML2, necesitamos introduzca la dll correspondiente. El código es el siguiente:

#import "msxml4.dll"?