Пример #1
0
	XmlNodePtr XmlDoc::Parse(DataStreamPtr const & pSource)
	{
		pSource->Seekg(0, std::ios_base::end);
		int len = static_cast<int>(pSource->Tellg());
		pSource->Seekg(0, std::ios_base::beg);
		m_cXmlSrcs.resize(len + 1, 0);
		pSource->Read(&m_cXmlSrcs[0], len);

		static_cast<rapidxml::xml_document<>*>(m_pDoc.get())->parse<0>(&m_cXmlSrcs[0]);
		m_pNodeRoot = MakeSharedPtr<XmlNode>(static_cast<rapidxml::xml_document<>*>(m_pDoc.get())->first_node());

		return m_pNodeRoot;
	}