⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlwritertest.cpp

📁 C++ class libraries for network-centric, portable applications, integrated perfectly with the C++ St
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	writer.setNewLine("\n");	writer.startDocument();	writer.processingInstruction("target", "a processing instruction");	writer.startElement("", "", "r");	writer.processingInstruction("target", "another processing instruction");	writer.dataElement("", "", "d", "data");	writer.endElement("", "", "r");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<?target a processing instruction?>\n<r>\n\t<?target another processing instruction?>\n\t<d>data</d>\n</r>\n");}void XMLWriterTest::testCharacters(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("", "", "r");	writer.characters("some \"chars\" that <must> be & escaped");	writer.endElement("", "", "r");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<r>some &quot;chars&quot; that &lt;must&gt; be &amp; escaped</r>");}void XMLWriterTest::testCDATA(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("", "", "r");	writer.startCDATA();	writer.characters("some \"chars\" that <must> be & escaped");	writer.endCDATA();	writer.endElement("", "", "r");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<r><![CDATA[some \"chars\" that <must> be & escaped]]></r>");}void XMLWriterTest::testRawCharacters(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("", "", "r");	writer.startCDATA();	writer.rawCharacters("some \"chars\" that <must> be & escaped");	writer.endCDATA();	writer.endElement("", "", "r");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<r><![CDATA[some \"chars\" that <must> be & escaped]]></r>");}void XMLWriterTest::testDefaultNamespace(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startPrefixMapping("", "urn:ns");	writer.startElement("", "", "r");	writer.characters("data");	writer.endElement("", "", "r");	writer.endPrefixMapping("");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<r xmlns=\"urn:ns\">data</r>");}void XMLWriterTest::testQNamespaces(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("urn:ns", "r", "p:r");	writer.characters("data");	writer.endElement("urn:ns", "r", "p:r");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<p:r xmlns:p=\"urn:ns\">data</p:r>");}void XMLWriterTest::testQNamespacesNested(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("urn:ns", "r", "p:r");	writer.startElement("urn:ns", "e", "p:e");	writer.endElement("urn:ns", "e", "p:e");	writer.endElement("urn:ns", "r", "p:r");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<p:r xmlns:p=\"urn:ns\"><p:e/></p:r>");}void XMLWriterTest::testNamespaces(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("urn:ns", "r", "");	writer.characters("data");	writer.endElement("urn:ns", "r", "");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<ns1:r xmlns:ns1=\"urn:ns\">data</ns1:r>");}void XMLWriterTest::testAttributeNamespaces(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	Poco::XML::AttributesImpl attrs;	attrs.addAttribute("urn:other", "myattr", "", "", "attrValue");	attrs.addAttribute("urn:ns", "myattr2", "", "", "attrValue2");	writer.startDocument();	writer.startElement("urn:ns", "r", "", attrs);	writer.characters("data");	writer.endElement("urn:ns", "r", "");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<ns1:r myattr2=\"attrValue2\" ns2:myattr=\"attrValue\" xmlns:ns1=\"urn:ns\" xmlns:ns2=\"urn:other\">data</ns1:r>");}void XMLWriterTest::testNamespacesNested(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("urn:ns1", "r", "");	writer.startElement("urn:ns1", "e", "");	writer.endElement("urn:ns1", "e", "");	writer.startElement("urn:ns2", "f", "");	writer.endElement("urn:ns2", "f", "");	writer.endElement("urn:ns1", "r", "");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<ns1:r xmlns:ns1=\"urn:ns1\"><ns1:e/><ns2:f xmlns:ns2=\"urn:ns2\"/></ns1:r>");}void XMLWriterTest::testExplicitNamespaces(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startPrefixMapping("p1", "urn:ns1");	writer.startPrefixMapping("p2", "urn:ns2");	writer.startElement("urn:ns1", "r", "");	writer.startElement("urn:ns2", "e", "");	writer.endElement("urn:ns2", "e", "");	writer.startPrefixMapping("p3", "urn:ns3");	writer.startElement("urn:ns2", "e", "");	writer.startElement("urn:ns3", "f", "");	writer.endElement("urn:ns3", "f", "");	writer.endElement("urn:ns2", "e", "");	writer.endElement("urn:ns1", "r", "");	writer.endDocument();	std::string xml = str.str();	assert (xml == "<p1:r xmlns:p1=\"urn:ns1\" xmlns:p2=\"urn:ns2\"><p2:e/><p2:e xmlns:p3=\"urn:ns3\"><p3:f/></p2:e></p1:r>");}void XMLWriterTest::testWellformed(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("", "", "foo");	try	{		writer.endElement("", "", "bar");		fail("not wellformed - must throw exception");	}	catch (Poco::Exception&)	{	}}void XMLWriterTest::testWellformedNested(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("", "", "foo");	writer.startElement("", "", "bar");	try	{		writer.endElement("", "", "foo");		fail("not wellformed - must throw exception");	}	catch (Poco::Exception&)	{	}}void XMLWriterTest::testWellformedNamespace(){	std::ostringstream str;	XMLWriter writer(str, XMLWriter::CANONICAL);	writer.startDocument();	writer.startElement("urn:ns1", "foo", "");	writer.startElement("urn:ns2", "bar", "");	try	{		writer.endElement("urn:ns1", "bar", "");		fail("not wellformed - must throw exception");	}	catch (Poco::Exception&)	{	}}void XMLWriterTest::setUp(){}void XMLWriterTest::tearDown(){}CppUnit::Test* XMLWriterTest::suite(){	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("XMLWriterTest");	CppUnit_addTest(pSuite, XMLWriterTest, testTrivial);	CppUnit_addTest(pSuite, XMLWriterTest, testTrivialDecl);	CppUnit_addTest(pSuite, XMLWriterTest, testTrivialDeclPretty);	CppUnit_addTest(pSuite, XMLWriterTest, testTrivialFragment);	CppUnit_addTest(pSuite, XMLWriterTest, testTrivialFragmentPretty);	CppUnit_addTest(pSuite, XMLWriterTest, testDTDPretty);	CppUnit_addTest(pSuite, XMLWriterTest, testDTD);	CppUnit_addTest(pSuite, XMLWriterTest, testDTDNotation);	CppUnit_addTest(pSuite, XMLWriterTest, testDTDEntity);	CppUnit_addTest(pSuite, XMLWriterTest, testAttributes);	CppUnit_addTest(pSuite, XMLWriterTest, testData);	CppUnit_addTest(pSuite, XMLWriterTest, testDataPretty);	CppUnit_addTest(pSuite, XMLWriterTest, testComment);	CppUnit_addTest(pSuite, XMLWriterTest, testPI);	CppUnit_addTest(pSuite, XMLWriterTest, testCharacters);	CppUnit_addTest(pSuite, XMLWriterTest, testCDATA);	CppUnit_addTest(pSuite, XMLWriterTest, testRawCharacters);	CppUnit_addTest(pSuite, XMLWriterTest, testDefaultNamespace);	CppUnit_addTest(pSuite, XMLWriterTest, testQNamespaces);	CppUnit_addTest(pSuite, XMLWriterTest, testQNamespacesNested);	CppUnit_addTest(pSuite, XMLWriterTest, testNamespaces);	CppUnit_addTest(pSuite, XMLWriterTest, testAttributeNamespaces);	CppUnit_addTest(pSuite, XMLWriterTest, testNamespacesNested);	CppUnit_addTest(pSuite, XMLWriterTest, testExplicitNamespaces);	CppUnit_addTest(pSuite, XMLWriterTest, testWellformed);	CppUnit_addTest(pSuite, XMLWriterTest, testWellformedNested);	CppUnit_addTest(pSuite, XMLWriterTest, testWellformedNamespace);	return pSuite;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -