Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Import/Export registry sections as XML

, 21 Jan 2003
Export registry sections as XML to simplify registry diffs
registryasxml_demo.zip
ReleaseMFCdll
registryasxml.exe
Release
registryasxml.exe
registryasxml_src.zip
registryxml.dsp
registryxml.dsw
res
Icon_Anchor.jpg
Icon_Form.jpg
Icon_Frame.jpg
Icon_Media.jpg
Icon_Root.jpg
ImageList.bmp
ImageList256.bmp
registryxml.ico
RegistryxmlDoc.ico
TocImageList.bmp
Toolbar.bmp
registryxml.opt
registryxml.plg
registryxml.suo
registryasxml__demo.zip
registryasxml.exe
registryasxml.exe
registryasxml__src.zip
registryxml.dsp
registryxml.dsw
Icon_Anchor.jpg
Icon_Form.jpg
Icon_Frame.jpg
Icon_Media.jpg
Icon_Root.jpg
ImageList.bmp
ImageList256.bmp
registryxml.ico
RegistryxmlDoc.ico
TocImageList.bmp
Toolbar.bmp

#pragma once

class CFile; // forward declaration


//// xmlwriter //////////////////////////////////////////////////////////////////////
//
//
//


class XmlWriter
{
	// Members
	//
protected:
	CFile *m_pFile;
	BOOL m_bFileOpen, m_bPrototypeWritten;
	CString m_szFilename;
	int m_nLevel;

	// Constructor
public:
	XmlWriter();
	virtual ~XmlWriter();

	// Accessors
public:
	void SetIndentLevel(int n) { m_nLevel = n; }
	int GetIndentLevel() { return m_nLevel; }
	CString &GetFilename() { return m_szFilename; }

	BOOL MustBeClosed() { return m_bFileOpen; }

	// Methods
public:
	void Init();
	BOOL Open(CString &szFilename);
	virtual BOOL WriteString(CString &szData);
	BOOL Close();
};


class XmlStringWriter : public XmlWriter
{
	// Members
	//
protected:
	CString m_szContent;

	// Constructor
public:
	XmlStringWriter();
	virtual ~XmlStringWriter();

	// Accessors
public:
	void Init();
	CString &GetContent();
	virtual BOOL WriteString(CString &szData);
	BOOL Close();

};

class XmlElement
{
	// Members
	//
protected:
	CString m_szName;
	CStringArray m_szAttribNames, m_szAttribValues;

	// Constructor
public:
	XmlElement();
	XmlElement(const CString &szName);

	// Accessors
public:
	void SetName(/*in*/const CString &szName);
	void GetName(/*out*/CString &szName);
	void GetAttribName(int nIndex, /*out*/ CString &szAttribName);
	void GetAttribValue(int nIndex, /*out*/ CString &szAttribValue);
	int GetAttribCount();
	BOOL FindAttrib(/*in*/CString &szAttribName);

	// Methods
	void AddAttrib(/*in*/CString &szName, /*in*/CString &szValue);

	void Write(XmlWriter &writer, int nDeltaLevel=0, BOOL bIndent=TRUE, BOOL bEOL=TRUE); // for any kind of open tag
	void WriteEmpty(XmlWriter &writer, int nDeltaLevel=0, BOOL bIndent=TRUE, BOOL bEOL=TRUE); // for any kind of open tag
	void WritePInstruction(XmlWriter &writer, int nDeltaLevel=0); // used mainly for <?xml ... ?>
	void WriteClosingTag(XmlWriter &writer, int nDeltaLevel=0, BOOL bIndent=TRUE, BOOL bEOL=TRUE); // for tag closure

};




By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Addicted to reverse engineering. At work, I am developing business intelligence software in a team of smart people (independent software vendor).
 
Need a fast Excel generation component? Try xlsgen.
 

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.141030.1 | Last Updated 22 Jan 2003
Article Copyright 2002 by Stephane Rodriguez.
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid