diff options
author | Mickaël Rémond <mickael.remond@process-one.net> | 2008-05-14 17:49:23 +0000 |
---|---|---|
committer | Mickaël Rémond <mickael.remond@process-one.net> | 2008-05-14 17:49:23 +0000 |
commit | 4613080337507a248046517c9e6ca79a3d0ad796 (patch) | |
tree | 8c57f973f5309bfa419b40dfbd817c74e800462c | |
parent | added 1.1.3 tag for package generation (diff) |
* Adding experimental branch.
SVN Revision: 1324
-rw-r--r-- | src/xml_stream.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/xml_stream.erl b/src/xml_stream.erl index c923b6ae7..7dedbeb14 100644 --- a/src/xml_stream.erl +++ b/src/xml_stream.erl @@ -59,6 +59,15 @@ process_data(CallbackPid, Stack, Data) -> case Stack of [El] -> [El]; + %% Merge CDATA nodes if they are contiguous + %% This does not change the semantic: the split in + %% several CDATA nodes depends on the TCP/IP packet + %% fragmentation + [{xmlelement, Name, Attrs, + [{xmlcdata, PreviousCData}|Els]} | Tail] -> + [{xmlelement, Name, Attrs, + [{xmlcdata, concat_binary([PreviousCData, CData])} | Els]} | Tail]; + %% No previous CDATA [{xmlelement, Name, Attrs, Els} | Tail] -> [{xmlelement, Name, Attrs, [{xmlcdata, CData} | Els]} | Tail]; |