Differences From Artifact [d8f4c394d4]:
- File src/OFXMLParser.h — part of check-in [889f63ab01] at 2010-06-06 23:31:32 on branch trunk — Fix a warning with Apple GCC 4.0.1. (user: js, size: 5282) [annotate] [blame] [check-ins using]
To Artifact [9635aaee4f]:
- File
src/OFXMLParser.h
— part of check-in
[9d79d92d9a]
at
2010-06-12 19:47:43
on branch trunk
— Several OFXMLParser improvements. See details.
* found* renamed to didFind*.
* Support for parsing CDATA.
* Handle comments with - correctly.
* Don't strip leading and trailing whitespaces in comments.
* Rename a few states for more clarity.
* More OFXMLParser tests. (user: js, size: 5736) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
48 49 50 51 52 53 54 55 56 57 58 59 | - (void)xmlParser: (OFXMLParser*)parser didEndTagWithName: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)ns; /** * This callback is called when the XML parser found a string. * * \param parser The parser which found a string * \param string The string the XML parser found */ - (void)xmlParser: (OFXMLParser*)parser | > > > | | | | | | 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | - (void)xmlParser: (OFXMLParser*)parser didEndTagWithName: (OFString*)name prefix: (OFString*)prefix namespace: (OFString*)ns; /** * This callback is called when the XML parser found a string. * * In case there are comments or CDATA, it is possible that this callback is * called multiple times in a row. * * \param parser The parser which found a string * \param string The string the XML parser found */ - (void)xmlParser: (OFXMLParser*)parser didFindString: (OFString*)string; /** * This callback is called when the XML parser found a comment. * * \param parser The parser which found a comment * \param comment The comment the XML parser found */ - (void)xmlParser: (OFXMLParser*)parser didFindComment: (OFString*)comment; /** * This callback is called when the XML parser found an entity it doesn't know. * The callback is supposed to return a substitution for the entity or nil if * it is not known to the callback as well, in which case an exception will be * risen. * * \param parser The parser which found an unknown entity * \param entity The name of the entity the XML parser didn't know * \return A substitution for the entity or nil */ - (OFString*)xmlParser: (OFXMLParser*)parser didFindUnknownEntityNamed: (OFString*)entity; @end /** * \brief A protocol that needs to be implemented by delegates for * -[stringByXMLUnescapingWithHandler:]. */ @protocol OFXMLUnescapingDelegate /** * This callback is called when an unknown entity was found while trying to * unescape XML. The callback is supposed to return a substitution for the * entity or nil if it is unknown to the callback as well, in which case an * exception will be thrown. * * \param entity The name of the entity that is unknown * \return A substitution for the entity or nil */ - (OFString*)didFindUnknownEntityNamed: (OFString*)entity; @end /** * \brief An event-based XML parser. * * OFXMLParser is an event-based XML parser which calls the delegate's callbacks * as soon asit finds something, thus suitable for streams as well. |
︙ | ︙ | |||
115 116 117 118 119 120 121 | OF_XMLPARSER_IN_CLOSE_TAG_NAME, OF_XMLPARSER_IN_TAG, OF_XMLPARSER_IN_ATTR_NAME, OF_XMLPARSER_EXPECT_DELIM, OF_XMLPARSER_IN_ATTR_VALUE, OF_XMLPARSER_EXPECT_CLOSE, OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE, | > > > > > > > | | > | | > > | 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | OF_XMLPARSER_IN_CLOSE_TAG_NAME, OF_XMLPARSER_IN_TAG, OF_XMLPARSER_IN_ATTR_NAME, OF_XMLPARSER_EXPECT_DELIM, OF_XMLPARSER_IN_ATTR_VALUE, OF_XMLPARSER_EXPECT_CLOSE, OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE, OF_XMLPARSER_IN_CDATA_OR_COMMENT, OF_XMLPARSER_IN_CDATA_OPENING_1, OF_XMLPARSER_IN_CDATA_OPENING_2, OF_XMLPARSER_IN_CDATA_OPENING_3, OF_XMLPARSER_IN_CDATA_OPENING_4, OF_XMLPARSER_IN_CDATA_OPENING_5, OF_XMLPARSER_IN_CDATA_OPENING_6, OF_XMLPARSER_IN_CDATA_1, OF_XMLPARSER_IN_CDATA_2, OF_XMLPARSER_IN_CDATA_3, OF_XMLPARSER_IN_COMMENT_OPENING, OF_XMLPARSER_IN_COMMENT_1, OF_XMLPARSER_IN_COMMENT_2, OF_XMLPARSER_IN_COMMENT_3 } state; OFMutableString *cache; OFString *name; OFString *prefix; OFMutableArray *namespaces; OFMutableArray *attrs; OFString *attrName; |
︙ | ︙ |