コード例 #1
0
ファイル: xmldom.cpp プロジェクト: zhuxiaokun/workshop
BOOL XMLDomParser::OnCharacterData(const XML_Char *s, int len)
{
	XMLElementNode* pParent = m_stack.top();
	XMLTextNode* p = pParent->GetTextChild();
	if(!p)
	{
		// 严格遵循XML语法,不再Trim,否则会有bug by Allen 20131012
// 		s = this->Trim(s, len, len);
// 		if(!len) return TRUE;

		p = new XMLTextNode();
		pParent->AddChild(p);
	}
	p->AddText(s, len);
	return TRUE;
}
コード例 #2
0
ファイル: xmldom.cpp プロジェクト: zhuxiaokun/workshop
BOOL XMLDomParser::OnEndElement(const XML_Char *name)
{
	// 清除空的TextNode by Allen, 20131012
	XMLElementNode* p = m_stack.top();
	XMLTextNode* pText = p->GetTextChild();
	if (pText)
	{
		int len;
		KXmlString& text = pText->m_text.m_val;
		this->Trim(text.c_str(), (int)text.size(), len);
		if (!len)
		{
			p->RemoveTextChild();
		}
		else
		{
			text.resize(len);
		}
	}

	m_stack.pop();
	return TRUE;
}