Пример #1
0
bool OutXmlSerializer::save(Stream& stream)
{
	XmlDocument doc;

	XmlDeclaration* decl = zenic_new XmlDeclaration;
	decl->setValue("xml");
	decl->setAttribute("version","1.0");
	decl->setAttribute("encoding","ISO-8859-1");
	doc.addChild(decl);

	XmlComment* comment = new XmlComment;
	comment->setValue(" Cell XML Object Graph ");
	doc.addChild(comment);

	// add initial objects

	for (uint i = 0, n = count(); i < n; ++i)
	{
		Serializable* initial = (*this)[i];
		uint j,m;
		for (j = 0, m = m_objects.count(); j < m; ++j)
		{
			if (m_objects[j] == initial)
				break;
		}

		if (j == m_objects.count())
			m_objects.pushBack(initial);
	}

	// build xml tree

	XmlElement* root = new XmlElement;
	root->setValue("zenic");

	for (uint i = 0; i < m_objects.count(); ++i)
	{
		Serializable* object = m_objects[i];
		ZENIC_ASSERT(object);

		m_current = 0;
		m_currentIndex = i;
		object->serialize(*this);

		ZENIC_ASSERT(m_current);
		root->addChild(m_current);
	}

	doc.addChild(root);

	// write tree to stream
	if (!doc.save(stream))
		return false;

	return true;
}
Пример #2
0
int main()
{
	XmlDocument doc;

	doc.parse("<?xml version='1.0' encoding='utf-8' ?><command><user>abc</user><pwd>密码</pwd></command>");
	//doc.parse("<command><user>abc</user><pwd>123</pwd></command>");

	//char a[] = "<command><user>abc</user><pwd>123</pwd></command>";
	//doc.parse(a);
	XmlNode command = doc.firstNode("command");
	XmlNode user = command.firstNode("user");
	XmlNode pwd = command.firstNode("pwd");

	KY_LOG_INFO("user: %s pwd: %s", user.text(), pwd.text());
	doc.save("test.xml");
	
	return 0;
}
Пример #3
0
void Executive::requirement4()
{
	std::cout << "\nDemonstrating Requirement 4 : \n";
	std::cout << "============================ \n\n";

	XmlDocument doc(_filePath, XmlDocument::sourceType::filename);
	builder.buildXml(doc);

	std::cout << "\n File Read:\n";
	std::cout << "\nInternal Parse Tree String Representation:";
	std::cout << "\n--------------------------------------------\n\n";
	std::cout << doc << "\n";

	XmlDocument movedDoc(std::move(doc));

	std::cout << "\nMove constructing XmlDocument \n";
	std::cout << "\n--------------------------------------------\n\n";

	std::cout << "\nInternal Parse Tree String Representation:";
	std::cout << "\n--------------------------------------------\n\n";
	std::cout << movedDoc << "\n";
	
	std::cout << "\n Move assigning xmlDocument \n";
	std::cout << "\n--------------------------------------------\n\n";

	XmlDocument emptyDoc;
	
	emptyDoc = std::move(movedDoc);

	std::cout << "\nInternal Parse Tree String Representation:";
	std::cout << "\n--------------------------------------------\n\n";
	std::cout << emptyDoc << "\n"; 
	
	std::cout << "\nSaving to a File \n";
	emptyDoc.save("EmptyXml.xml");

	std::cout << "\n Reading from the saved File \n";

	display.showFileContent("EmptyXml.xml");
	
}