📄 tiny_xml.hpp
字号:
// tiny XML sub-set tools --------------------------------------------------//// (C) Copyright Beman Dawes 2002. Distributed under the Boost// Software License, Version 1.0. (See accompanying file// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)// Provides self-contained tools for this XML sub-set://// element ::= { "<" name { name "=" "\"" value "\"" } ">"// {element} [contents] "</" name ">" }//// The point of "self-contained" is to minimize tool-chain dependencies.#ifndef BOOST_TINY_XML_H#define BOOST_TINY_XML_H#include "boost/smart_ptr.hpp" // for shared_ptr#include "boost/utility.hpp" // for noncopyable#include <list>#include <iostream>#include <string>namespace boost{ namespace tiny_xml { class element; struct attribute { std::string name; std::string value; attribute(){} attribute( const std::string & name, const std::string & value ) : name(name), value(value) {} }; typedef boost::shared_ptr< element > element_ptr; typedef std::list< element_ptr > element_list; typedef std::list< attribute > attribute_list; class element : private boost::noncopyable // because deep copy sematics would be required { public: std::string name; attribute_list attributes; element_list elements; std::string content; element() {} explicit element( const std::string & name ) : name(name) {} }; element_ptr parse( std::istream & in, const std::string & msg ); // Precondition: stream positioned at either the initial "<" // or the first character after the initial "<". // Postcondition: stream positioned at the first character after final // ">" (or eof). // Returns: an element_ptr to an element representing the parsed stream. // Throws: std::string on syntax error. msg appended to what() string. void write( const element & e, std::ostream & out ); }}#endif // BOOST_TINY_XML_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -