changelog
来自「c语言编写的xml解析器可以方便的遍历插入删除节点等操作的」· 代码 · 共 1,078 行 · 第 1/3 页
TXT
1,078 行
* all header files: Removed libxml2 headers inclusion. Added necessary forward declaration of libxml2 structures. * libxml++/parsers/saxparser.[h|cc]: Moved static callback functions into a struct defined only in the .cc file, SaxParserCallback. Added boolean parameter to SaxParser constructor to activate on_get_entity callback (default to false). This technique could eventually be extended to other functions in the future. * libxml++-1.0.pc.in: removed libxml headers include path from Cflags.2003-05-22 Christophe de Vienne <cdevienne@netcourrier.com> * libxml++/nodes/node.[h|cc]: Added Node::set_name().2003-05-20 Christophe de Vienne <cdevienne@netcourrier.com> * libxml++/nodes/[node.cc|element.h]: Minor syntax adjustments to allow compiling with g++ -ansi -pedantic -Wall without any warning.0.23:2003-05-20 Christophe de Vienne <cdevienne@netcourrier.com> * libxml++/keepblanks.[h|cc]: New KeepBlanks class which change settings related to xmlKeepBlanksDefault and xmlIndentTreeOuput. * libxml++/[document.cc|parsers/*parsers.cc]: use KeepBlanks instead of manually call xmlKeepBlanksDefault(). Significant white spaces are not removed/added anymore. * example/dom_read_write/example_output.xml: removed.2003-05-16 Murray Cumming <murrayc@usa.net> * libxml++/noncopyable.[h|cc]: New xmlpp::NonCopyable base class, which should prevent people from using automatically-generated copy constructors when they shouldn't. Not tested yet. * libxml++/examples/dom_read_write: New example/test. This does show that we are removing significant white space. This has been discussed on the list and apparently Christophe has a fix for it.2003-05-06 Andy Glew <andy.glew@amd.com> * libxml++/nodes/node.cc: Node::find( nonexistent_xpath ) now return empty NodeSet2003-04-24 Christophe de Vienne <cdevienne@netcourrier.com> * libxml++/parsers/saxparser.cc: Fixed a memory leak pointed by "thierry" <thierry.blanchard@digitech.fr>. The sax handler of the context is not reset to 0 before context release anymore. In parse() the default one is saved then restored after effective parsing, so libxml handle itself its destruction.2003-04-20 Christophe de Vienne <cdevienne@netcourrier.com> * libxml++/document.cc: Removed a warning message that was put on std::cout if an unknown type of node was created and replaced it by an assert. This avoid the need to include iostream(.h).2003-04-18 Murray Cumming <murrayc@usa.net> * Applied Jaka Jejcic's patch to fix compilation on NetBSD, including iostream.h instead of istream.h.2003-04-09 Eric Bourque <ericb@computer.org> * libxml++.spec.in: modified spec file to be library version agnostic.2003-03-19 Ephraim Vider * added msvc support in win32_msvc6.2003-03-17 Ephraim Vider * Modified sax_exception example: - corrected Clone() return type for MyException in myparser.[h|cc] - catch all exceptions in main.cc - handle real errors too0.22:2003-03-15 Murray Cumming <murrayc@usa.net> * libxml++/parser/domparser.cc: Added const overload of get_document().2003-03-13 Christophe de Vienne * libxml++/parser/domparser.cc: Test if context creation is successfull in the different parse_xxx functions. If it is no an internal_error is thrown.2003-03-06 Ephraim Vider * made DomParser a wrapper around Document removed all functions that were duplicates of document functions and added get_document() files: domparser.[h|cc] document.h * fixed compilation errors for msvc: - corrected Clone() return type for derived exceptions - corrected getline to std::getline in saxparser.cc - changed clear() to erase() in parser.cc - added #define for vsprintf in parser.h - fixed warning in element.cc0.21: 2003-02-21 Eric Bourque * Added spec.in, for creating RPMs.2003-02-20 Murray Cumming <murrayc@usa.net> * libxml++/nodes/node.[h|cc]: Moved get_child_content(), set_child_content(), add_content(), and has_content() from Node to derived Element class instead of just throwing an exception if it isn't an Element. This means you can't use set_child_content() on a TextNode - you should be using TextNode::set_content() anyway, which makes a lot more sense. Corrected set_child_content() to create a TextNode instead of creating a node with the content as the name, fixing the output of the dom_build example.2003-02-20 Murray Cumming <murrayc@usa.net> * libxml++/parsers/parser.[h|cc]: initialize_contex(): Request iniitialization and connect callbacks check_exception(): Throw exception if any validation problems have been found - the messages are built up gradually by repeated callbacks. set_validate(): Enables validation before calling parse_*(). Alternatively, use 2nd bool parameter to the DomParser constructor. * libxml++/exceptions/: Added validation_error class. * examples/dom_parser: Added a DTD and changed example.xml to something that uses it. Also added example_invalid.xml to test the exceptions.2003-02-12 Ole Laursen <olau@hardworking.dk> * examples/sax_parser/main.cc: Added chunk-wise parsing to the example. * libxml++/parsers/saxparser.[h,cc]: Added functionality for parsing chunks of data.2003-02-17 Murray Cumming <murrayc@usa.net> * libxml++/parsers/*.[h|cc]: All parsing is now done via contexts, which required a little duplication of the implementation of functions such as xmlParseFile(), most of which is now in DomParser::parse_context(). This avoids use of global functions such as xmlKeepBlanksDefault() by setting these booleans directly in the context, in Parser::initialize_context(). However, xmlCreateFileParserCtxt() does seem to be affected by xmlKeepBlanksDefault so we still have to use it temporarily, restoring the old value afterwards - see the comments in DomParser::parse_file(). This should allow us to add validation to the API.0.20: 2003-02-15 Murray Cumming <murrayc@usa.net> * libxml++/nodes/node.cc: (remove_child): Implemented it with xmlUnlinkNode and xmlFreeNode, so that it's actually removed.2003-02-15 Murray Cumming <murrayc@usa.net> * Added examples/dom_xpath, with code from Stefan Seefeld's dom example.2003-02-15 Murray Cumming <murrayc@usa.net> * Reverted the Node::child_iterator API change because it was undiscussed and is unfinished. The BRANCH_1_0 and HEAD branches are now merged. BRANCH_1_0 should no longer be used. This was never in 0.19.0.19: 2003-02-07 Murray Cumming <murrayc@usa.net> * Moved method implementations such as get_attributes() into derived classes instead of using "using methodname();". That seems clearer. However it shows that we should probably create a shared base class for Content and Comment, as in the DOM.2003-02-06 Murray Cumming <murrayc@usa.net> * libxml++/parsers/saxparser.[h|cc]: Corrected some coding style.2003-02-06 Murray Cumming <murrayc@usa.net> * Changed c_obj() to cobj() because it's more like gobj() used in gtkmm, gnomemm, etc.2003-02-06 Murray Cumming <murrayc@usa.net> * libxml++/nodes/node.*: Corrected code style. 2003-02-06 Murray Cumming <murrayc@usa.net> * libxml++/nodes/node.[h|cc], libxml++/attribute.[h|cc]: Made c_obj() accessors public so people can use them. Provided const and non-const versions of them. Put implementation in .cc file. * Reverted some of Stefan's coding style changes and corrected the coding style in libxml++/nodes/document.[h|cc]. * libxml++/document.h: Made the destructor virtual, because there are virtual methods. 2002-02-04 Stefan Seefeld <seefeld@sympatico.ca> * libxml++/node.[h,cc]: add new insert_child and append_child methods (using new iterators), add get_path and find methods for xpath lookup * examples/dom: new example code to illustrate the new features 2002-02-03 Stefan Seefeld <seefeld@sympatico.ca> * libxml++/node.h, libxml++/parsers/saxparser.[h,cc], examples/sax_parser/*.[h,cc], examples/sax_exception/*.[h,cc]: SaxParser::AttributeMap is now a map<string, string>.2002-02-03 Stefan Seefeld <seefeld@sympatico.ca> * libxml++/node.h: add child_iterators for simple C++ style iteration (to get eventually rid of NodeList)2002-02-03 Stefan Seefeld <seefeld@sympatico.ca> * libxml++/attribute.[h,cc], libxml++/nodes/node.[h,cc], libxml++/document.cc: derive Attribute from Node, and make get_value() use libxml2 accessor instead of raw pointer2002-02-03 Stefan Seefeld <seefeld@sympatico.ca> * libxml++/document.[h,cc], libxml++/parsers/domparser.[h,cc], libxml++/libxml++.h, libxml++/Makefile.am: introduce new Document type. * examples/dom_build/main.cc: make dom_build example use new Document type2002-02-03 Stefan Seefeld <seefeld@sympatico.ca> * acinclude.m4: The AM_LIBXML macro now checks for a libxml2 version >= 2.5.1. * libxml++/nodes/node.cc: compare strings, not pointers, in get_attribute()2003-01-31 Stefan Seefeld <seefeld@sympatico.ca> * various: overall change to use libxml2 as implementation, not only as I/O backend. With corrections by Murray Cumming. Further explanation by murrayc: Instead of maintaining its own C++ data structures and then creating libxml data structures from them, it now manipulates the libxml data structures directly, so the C++ and C APIs are always in sync.2003-01-21 Valentin Rusu <sourceforge@valentinrusu.net> * added CDATA section handler to SaxParser 2003-01-05 Valentin Rusu <sourceforge@valentinrusu.net> * fixed a potential buffer overflow problem into saxparser.cc 0.18:2003-01-31 Stefan Seefeld <seefeld@sympatico.ca> * various: overall change to use libxml2 as implementation, not only as I/O backend.2003-01-05 Murray Cumming <murrayc@usa.net> * examples/dom_build/main.cc: Removed some useless test C code.2002-12-24 Morten Brix Pedersen <morten@wtf.dk> * Include <iostream> instead of <istream> to compile on gcc 2.95.4. 2002-12-26 Murray Cumming <murrayc@usa.net> * libxml++/nodes/element.c (write): Add back the code to write the attributes to the C libxml structure. This code got lost during the refactoring.2002-12-25 Murray Cumming <murrayc@usa.net> * Removed unused constructors, to simplify things. Made Node's destructor virtual, because we delete them polymorphically, and because it has virtual methods.2002-12-25 Murray Cumming <murrayc@usa.net> * libxml++/nodes/node.[h|cc]: Removed the initialized member variable and its accessor, because it's not used.2002-12-19 Murray Cumming <murrayc@usa.net> * libxml++/parsers/domparser.[h|cc]: get/set_root_node() now returns an Element instead of a Node.2002-12-19 Murray Cumming <murrayc@usa.net> * Changed const & accessors to get_*() methods. For instance, Node::name -> Node::get_name Node::children() -> Node::get_children() Element::attributes() -> Element::get_attributes() Attribute::value -> Attribute::get_value()2002-12-18 Murray Cumming <murrayc@usa.net> * Added libxml++/nodes/commentnode.[h|cc] and used it in Node so that comments don't just show up as name=comment Nodes. * examples/dom_parser/example.xml: Added a comment. * examples/dom_parser/main.cc: Do a dynamic_cast<> check for comments too.2002-12-18 Christophe de Vienne <cdevienne@alphacent.com> * libxml++/parser/saxparser.cc: Fixed a bug in exception handling in parse_stream. Thanks to Fredrik Arnerup <e97_far@e.kth.se> for reporting the bug. 2002-12-17 Murray Cumming <murrayc@usa.net> * Added libxml++/nodes/textnode.[h|cc]. This should remove the confusion about whether content()/set_content() should be used on a text node or the parent of a text node. * libxml++/nodes/node.[h|cc]: - Node::write() is now virtual, and different in TextNode. - content() replaced by get_child_content, which returns a TextNode* instead of a string. - set_content() replaced by set_child_content(). * Added libxml++/nodes/element.[h|cc] so that TextNode can inherit from a Node class without the attributes API. As per the Java DOM API, Node still has the children API - I guess there's some reason for that, though I don't see how a TextNode could have children.2002-12-17 Murray Cumming <murrayc@usa.net> * Moved node.[h|cc] into nodes sub directory, in preparation for the multiple-node-types API change.2002-12-12 Jonathan Wakely <redi@kayari.org> * libxml++/parsers/saxparser.cc, saxparser.h (on_get_entity): New virtual function to allow derived classes to override entity handling 2002-12-16 Murray Cumming <murrayc@usa.net> * libxml++/node.cc: write(): - Don't set the node->type directly. Let xmlNodeSetContent take care of adding a suitable child node. This was leading to segfaults when write() later tried to add a child node to a text node. - Throw internal_error exception when xmlNewChild returns NULL. 0.17:.2002-12-10 Christophe de Vienne <cdevienne@alphacent> * configure.in: updated version numbers for next release. Generic version is now 0.17, library version is 3:0:0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?