//////////////////////////////////////////////////////////////////////////////////// // // File: xml.h // // History: 16-Nov-00 markder Created. // // Desc: This file contains all object definitions used by the // XML parsing code. // //////////////////////////////////////////////////////////////////////////////////// #ifndef __XML_H__ #define __XML_H__ #include BOOL AddAttribute(IXMLDOMNode* pNode, CString csAttribute, CString csValue); BOOL GetAttribute(LPCTSTR lpszAttribute, IXMLDOMNodePtr pNode, CString* pcsValue, BOOL bXML = FALSE); BOOL RemoveAttribute(CString csName, IXMLDOMNodePtr pNode); BOOL GetChild(LPCTSTR lpszTag, IXMLDOMNode* pParentNode, IXMLDOMNode** ppChildNode); CString GetText(IXMLDOMNode* pNode); BOOL GetNodeText(IXMLDOMNode* pNode, CString& csNodeText); CString GetNodeName(IXMLDOMNode* pNode); CString GetParentNodeName(IXMLDOMNode* pNode); CString GetXML(IXMLDOMNode* pNode); CString GetInnerXML(IXMLDOMNode* pNode); LANGID MapStringToLangID(CString& csLang); CString GetInnerXML(IXMLDOMNode* pNode); BOOL OpenXML(CString csFileOrStream, IXMLDOMNode** ppRootNode, BOOL bStream = FALSE, IXMLDOMDocument** ppDoc = NULL); BOOL SaveXMLFile(CString csFile, IXMLDOMNode* pNode); BOOL GenerateIDAttribute(IXMLDOMNode* pNode, CString* pcsGuid, GUID* pGuid); BOOL ReplaceXMLNode(IXMLDOMNode* pNode, IXMLDOMDocument* pDoc, BSTR bsText); //////////////////////////////////////////////////////////////////////////////////// // // XMLNodeList // // This class is a wrapper for the IXMLDOMNodeList interface. It simplifies // C++ access by exposing functions for executing XQL queries and iterating // through the elements in a node list. // class XMLNodeList { private: LONG m_nSize; IXMLDOMNodeListPtr m_cpList; CString m_csXQL; public: XMLNodeList(); ~XMLNodeList(); void Clear(); LONG GetSize(); BOOL Query(IXMLDOMNode* pNode, LPCTSTR szXQL); BOOL GetChildNodes(IXMLDOMNode* pNode); BOOL GetItem(LONG nIndex, IXMLDOMNode** ppNode); }; #endif