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; }
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; }
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"); }