|
|
/* @doc
* * @module XMLDocUtils.h | * * Header file for XMLDocUtils.cpp * * Author: Ying-ping Chen (t-ypchen) */ #pragma once
// @func void | CreateXMLDocument | Create a new XML document
// @rdesc None
void CreateXMLDocument ( IXMLDOMDocument **ppXMLDoc // @parm [out] the created XML document
);
// @func void | XMLAddAttributeToElement | Add an attribute to an element
// @syntax void XMLAddAttributeToElement(IXMLDOMDocument *pContextDoc, IXMLDOMElement *pElement, const BSTR bstrAttrName, const CComVariant &varAttrValue);
// @syntax void XMLAddAttributeToElement(IXMLDOMDocument *pContextDoc, IXMLDOMElement *pElement, const LPCWSTR pwszAttrName, const LPCWSTR pwszAttrValue);
// @rdesc None
void XMLAddAttributeToElement ( IXMLDOMDocument *pContextDoc, // @parm [in] the XML context for creating the new attribute
IXMLDOMElement *pElement, // @parm [in] the XML element
const BSTR bstrAttrName, // @parm [in] the name of the attribute
const CComVariant &varAttrValue // @parm [in] the value of the attribute
);
// Add an attribute to an element (a thin wrapper of the previous function)
void XMLAddAttributeToElement ( IXMLDOMDocument *pContextDoc, IXMLDOMElement *pElement, const LPCWSTR pwszAttrName, // @parm [in] the name of the attribute
const LPCWSTR pwszAttrValue // @parm [in] the value of the attribute
);
// @func void | XMLAddTextToElement | Add a text node to an element
// @syntax void XMLAddTextToElement(IXMLDOMElement *pElement, const BSTR bstrText);
// @syntax void XMLAddTextToElement(IXMLDOMElement *pElement, const LPCWSTR pwszText);
// @rdesc None
void XMLAddTextToElement ( IXMLDOMElement *pElement, // @parm [in] the XML element
const BSTR bstrText // @parm [in] the text of the text node
);
// Add a text node to an element (a thin wrapper of the previous function)
void XMLAddTextToElement ( IXMLDOMElement *pElement, const LPCWSTR pwszText // @parm [in] the text of the text node
);
// @func void | XMLAddElementToNode |
// Add an element to a node,
// add an element to a node with a text node, or
// add an element to a node with an attribute.
// @syntax void XMLAddElementToNode(IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const BSTR bstrTagName, IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL);
// @syntax void XMLAddElementToNode(IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const LPCWSTR pwszTagName, IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL);
// @syntax void XMLAddElementToNode(IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const BSTR bstrTagName, const BSTR bstrText, IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL);
// @syntax void XMLAddElementToNode(IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const LPCWSTR pwszTagName, const LPCWSTR pwszText, IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL);
// @syntax void XMLAddElementToNode(IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const BSTR bstrTagName, const BSTR bstrAttrName, const CComVariant &varAttrValue, IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL);
// @syntax void XMLAddElementToNode(IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const LPCWSTR pwszTagName, const LPCWSTR pwszAttrName, const LPCWSTR pwszAttrValue, IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL);
// @rdesc None
void XMLAddElementToNode ( IXMLDOMDocument *pContextDoc, // @parm [in] the XML context for creating the new element
IXMLDOMNode *pParentNode, // @parm [in] the parent node
const BSTR bstrTagName, // @parm [in] the tag of the new element
IXMLDOMElement **ppElement, // @parm [out] the created element
IXMLDOMNode **ppNode = NULL // @parmopt [out] (Optional) the XML node interface to the created element
);
// Add an element to a node (a thin wrapper of the previous function)
void XMLAddElementToNode ( IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const LPCWSTR pwszTagName, // @parm [in] the tag of the new element
IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL );
// Add an element to a node with a text node
// [in] pContextDoc - the XML context for creating the new element
// [in] pParentNode - the parent node
// [in] bstrTagName - the tag of the new node
// [in] bstrText - the text of the text node
// [out] ppElement - the pointer to the pointer to the created element
// [out] ppNode - (Optional) the pointer to the pointer to the XML
// node interface to the created element
void XMLAddElementToNode ( IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const BSTR bstrTagName, const BSTR bstrText, // @parm [in] the text of the text node
IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL );
// Add an element to a node with a text node
// (a thin wrapper of the previous function)
void XMLAddElementToNode ( IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const LPCWSTR pwszTagName, const LPCWSTR pwszText, // @parm [in] the text of the text node
IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL );
// Add an element to a node with an attribute
// [in] pContextDoc - the XML context for creating the new element
// [in] pParentNode - the parent node
// [in] bstrTagName - the tag of the new element
// [in] bstrAttrName - the name of the attribute of the new element
// [in] varAttrValue - the value of the attribute of the new element
// [out] ppElement - the pointer to the pointer to the created element
// [out] ppNode - (Optional) the pointer to the pointer to the XML
// node interface to the created element
void XMLAddElementToNode ( IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const BSTR bstrTagName, const BSTR bstrAttrName, // @parm [in] the name of the attribute of the new element
const CComVariant &varAttrValue, // @parm [in] the value of the attribute of the new element
IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL );
// Add an element to a node with an attribute
// (a thin wrapper of the previous function)
void XMLAddElementToNode ( IXMLDOMDocument *pContextDoc, IXMLDOMNode *pParentNode, const LPCWSTR pwszTagName, const LPCWSTR pwszAttrName, // @parm [in] the name of the attribute of the new element
const LPCWSTR pwszAttrValue, // @parm [in] the value of the attribute of the new element
IXMLDOMElement **ppElement, IXMLDOMNode **ppNode = NULL );
// @func HRESULT | ParseXML | Parse an XML document
// @syntax HRESULT ParseXML(const BSTR bstrXML, IXMLDOMDocument **ppXMLDoc);
// @syntax HRESULT ParseXML(const LPCSTR pwszXML, IXMLDOMDocument **ppXMLDoc);
// @syntax HRESULT ParseXML(const LPCSTR pszXML, IXMLDOMDocument **ppXMLDoc);
// @rdesc Return the following values:
// @flag S_OK | successful
// @flag Otherwise | parse error
HRESULT ParseXML ( const BSTR bstrXML, // @parm [in] the XML content
IXMLDOMDocument **ppXMLDoc // @parm [out] the XML document object
);
// Parse an XML document
// (a thin wrapper of the previous function)
HRESULT ParseXML ( const LPCWSTR pwszXML, // @parm [in] the XML content
IXMLDOMDocument **ppXMLDoc );
// Parse an XML document
// (a thin wrapper of the previous function)
HRESULT ParseXML ( const LPCSTR pszXML, // @parm [in] the XML content
IXMLDOMDocument **ppXMLDoc );
// @func void | XMLToString | Output an XML document to a string object
// @syntax void XMLToString(IXMLDOMNode *pXMLRootNode, CStringW &cwszDoc);
// @syntax void XMLToString(IXMLDOMNode *pXMLRootNode, CStringA &cszDoc);
// @rdesc None
void XMLToString ( IXMLDOMNode *pXMLRootNode, // @parm [in] the root node of the XML document to be output
CStringW &cwszDoc // @parm [out] the string object holding the XML document
);
// Output an XML document to a string object
// (a thin wrapper of the previous function)
void XMLToString ( IXMLDOMNode *pXMLRootNode, CStringA &cszDoc // @parm [out] the string object holding the XML document
);
// @func HRESULT | XMLLoadNodeText | Load the text of a node
// @syntax HRESULT XMLLoadNodeText(IXMLDOMDocument *pXMLDoc, const LPCWSTR &pwszNodeName, CComBSTR &bstrNodeText);
// @syntax HRESULT XMLLoadNodeText(IXMLDOMDocument *pXMLDoc, const LPCWSTR &pwszNodeName, CStringW &cwszNodeText);
// @syntax HRESULT XMLLoadNodeText(IXMLDOMDocument *pXMLDoc, const LPCSTR &pszNodeName, CComBSTR &bstrNodeText);
// @syntax HRESULT XMLLoadNodeText(IXMLDOMDocument *pXMLDoc, const LPCSTR &pszNodeName, CStringW &cwszNodeText);
// @rdesc Return the following values:
// @flag S_OK | successful
// @flag PP_E_XML_NO_SUCH_NODE | the specified node is not found
// @flag PP_E_XML_NO_TEXT | the specified node has no text
HRESULT XMLLoadNodeText ( IXMLDOMDocument *pXMLDoc, // @parm [in] the XML document
const LPCWSTR &pwszNodeName, // @parm [in] the name of the node
CComBSTR &bstrNodeText // @parm [out] the text of the node (if S_OK)
);
// Load the text of a node (a thin wrapper of the previous function)
HRESULT XMLLoadNodeText ( IXMLDOMDocument *pXMLDoc, const LPCWSTR &pwszNodeName, CStringW &cwszNodeText // @parm [out] the text of the node (if S_OK)
);
// Load the text of a node (a thin wrapper of the previous function)
HRESULT XMLLoadNodeText ( IXMLDOMDocument *pXMLDoc, const LPCSTR &pszNodeName, // @parm [in] the name of the node
CComBSTR &bstrNodeText );
// Load the text of a node (a thin wrapper of the previous function)
HRESULT XMLLoadNodeText ( IXMLDOMDocument *pXMLDoc, const LPCSTR &pszNodeName, CStringW &cwszNodeText );
// @func HRESULT | XMLLoadAttribute | Load the attribute
// @syntax HRESULT XMLLoadAttribute(IXMLDOMDocument *pXMLDoc, const LPCWSTR &pwszNodeName, const LPCWSTR &pwszAttrName, CComBSTR &bstrAttrValue);
// @rdesc Return the following values:
// @flag S_OK | successful
// @flag PP_E_XML_NO_SUCH_NODE | the specified node is not found
// @flag PP_E_XML_NO_SUCH_ATTRIBUTE | the specified attribute not found
HRESULT XMLLoadAttribute ( IXMLDOMDocument *pXMLDoc, // @parm [in] the XML document
const LPCWSTR &pwszNodeName, // @parm [in] the name of the node
const LPCWSTR &pwszAttrName, // @parm [in] the name of the attribute
CComBSTR &bstrAttrValue // @parm [out] the value of the attribute (if S_OK)
);
|