Exemple #1
0
tstring CDoc::SaveToString(CNode& rNode, bool bQualified, bool bPrettyPrint)
{
	if (rNode.m_pDOMNode->getParentNode() == NULL || rNode.m_pDOMNode->getParentNode()->getNodeType() == xercesc::DOMNode::DOCUMENT_FRAGMENT_NODE)
	{
		FinalizeRootElement(rNode);
	}

	CNode::InternalAdjustPrefix(rNode.m_pDOMNode, bQualified);
	rNode.AdjustPrefix();

	xercesc::DOMWriter* pWriter = GetWriter();
	m_bWriter = true;

	if (!m_sEncoding.empty())
		pWriter->setEncoding(X(m_sEncoding));

	if (bPrettyPrint &&
	    pWriter->canSetFeature(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint, true))
		pWriter->setFeature(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint, true);

	XMLCh* szXml = pWriter->writeToString(*(rNode.m_pDOMNode->getOwnerDocument()));
	tstring sXml = XC2TS( szXml );
	xercesc::XMLString::release( &szXml );
	return sXml;
}
Exemple #2
0
void CDoc::Save(const tstring& sURI, CNode& rNode, bool bQualified, bool bPrettyPrint)
{
	if (rNode.m_pDOMNode->getParentNode() == NULL || rNode.m_pDOMNode->getParentNode()->getNodeType() == xercesc::DOMNode::DOCUMENT_FRAGMENT_NODE)
	{
		FinalizeRootElement(rNode);
	}

	CNode::InternalAdjustPrefix(rNode.m_pDOMNode, bQualified);
	rNode.AdjustPrefix();

	xercesc::DOMWriter* pWriter = GetWriter();
	m_bWriter = true;
	xercesc::LocalFileFormatTarget myFormatTarget(sURI.c_str());

	if (!m_sEncoding.empty())
		pWriter->setEncoding(X(m_sEncoding));

	if (bPrettyPrint &&
	    pWriter->canSetFeature(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint, true))
		pWriter->setFeature(xercesc::XMLUni::fgDOMWRTFormatPrettyPrint, true);

	pWriter->writeNode(&myFormatTarget, *(rNode.m_pDOMNode->getOwnerDocument()));
}