DWORD XML::parseFile()
{
if (m_parsed)
return ERROR_SUCCESS;
if (m_parser != NULL)
{
m_parser->parse(m_xmlFileName);
m_document =
m_parser->getDocument();
if (m_document != NULL)
{
m_parsed = true;
return ERROR_SUCCESS;
}
}
return ERROR_INVALID_HANDLE;
}
DWORD XML::WriteUserInfo(PUSERINFO pUserInfo)
{
if (pUserInfo == NULL)
return ERROR_NO_DATA;
if (parseFile() != ERROR_SUCCESS)
return ERROR_INVALID_HANDLE;
DOMNodeList* contactInfo =
m_document->getElementsByTagName(L”ContactInfo”);
if (contactInfo == NULL)
return ERROR_INVALID_HANDLE;
DOMElement* element = (DOMElement
*)contactInfo->item( 0 );
SetElementText(element, L“FirstName”,
pUserInfo->szFirstName);
SetElementText(element, L” LastName”,
pUserInfo->szLastName);
…
return ERROR_SUCCESS;
}
// -----------------------------------------------
DWORD XML::SetElementText(DOMElement *pElem, LPCWSTR
pzName, LPCSTR value)
{
if( pElem != NULL )
{
DOMNodeList *pList =
pElem->getElementsByTagName(pzName);
if( pList->getLength() > 0 )
{
DOMElement *pElem = (DOMElement
*)pList->item( 0 );
DOMNode *pChild = pElem->getFirstChild();
if( pChild )
{
pChild->setNodeValue(XMLString::transcode(value));
return ERROR_SUCCESS;
}
}
}
return ERROR_INVALID_HANDLE;
}
|