diff options
author | Mickaël Rémond <mickael.remond@process-one.net> | 2007-07-30 10:06:49 +0000 |
---|---|---|
committer | Mickaël Rémond <mickael.remond@process-one.net> | 2007-07-30 10:06:49 +0000 |
commit | e9bbed229968ee8f4575846d9be0213ee88dcedb (patch) | |
tree | d2ef7fbdff9d6c5ac54a077f639bd86581fbbdc0 /src | |
parent | * src/xml.erl: Remove compilation warnings (EJAB-290). (diff) |
* src/xml_stream.erl: Group CDATA on a single xmlcdata node (splitting is not relevant as dependant on TCP/IP packet fragmentation) (EJAB-292).
SVN Revision: 839
Diffstat (limited to 'src')
-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]; |