diff options
author | Jacek Konieczny <jajcus@jajcus.net> | 2005-01-18 00:10:39 +0300 |
---|---|---|
committer | Jacek Konieczny <jajcus@jajcus.net> | 2005-01-18 00:10:39 +0300 |
commit | 880c5316ad45f9c1417ca49404865b6c2d4d320b (patch) | |
tree | 54a7206a8b76c30d9846314427b12eafb028db76 /ext | |
parent | 5865065f6deaaeb3ffa0c61495add0c93b9889ee (diff) |
- do not ignore all the CDATA, just the ignorable whitespace on the begining of the document
Diffstat (limited to 'ext')
-rw-r--r-- | ext/xmlextra.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ext/xmlextra.c b/ext/xmlextra.c index 15aa602..23b03ad 100644 --- a/ext/xmlextra.c +++ b/ext/xmlextra.c @@ -673,7 +673,7 @@ char c; if (c=='<') { new_state=LS_TSTART; if (reader->buffer_pos>1) { - current_markup=MT_IGNORE; + current_markup=MT_CDATA; *len=reader->buffer_pos-1; } } @@ -1241,6 +1241,7 @@ size_t len; int tmp_len; MarkupType mtype; int depth_change; +size_t i; if (reader->eof){ Py_INCREF(Py_None); @@ -1310,6 +1311,14 @@ int depth_change; break; case MT_IGNORE: break; + case MT_CDATA: + for(i=0;i<len;i++){ + if (reader->buffer[i]!=' ' + && reader->buffer[i]!='\t' + && reader->buffer[i]!='\r' + && reader->buffer[i]!='\n') break; + } + if (i==len) break; default: preparsing_reader_clear(reader); PyErr_SetString(MyError,"XML not well-formed " |