Commit a2cf90d9 authored by Olivier Bertrand's avatar Olivier Bertrand

Suppress multiple blanks and control characters from the

node text retrieved by libxml2.

Modified:
libdoc.cpp
parent b2f11bf0
...@@ -461,7 +461,27 @@ char *XML2NODE::GetText(char *buf, int len) ...@@ -461,7 +461,27 @@ char *XML2NODE::GetText(char *buf, int len)
xmlFree(Content); xmlFree(Content);
if ((Content = xmlNodeGetContent(Nodep))) { if ((Content = xmlNodeGetContent(Nodep))) {
int rc = ((PXDOC2)Doc)->Decode(Content, buf, len); char *p1, *p2;
bool b = false;
int rc = ((PXDOC2)Doc)->Decode(Content, buf, len);
// Eliminate extra characters
for (p1 = p2 = buf; *p1; p1++)
if (strchr(" \t\r\n", *p1)) {
if (b) {
*p2++ = ' ';
b = false;
} // endif b
} else {
*p2++ = *p1;
b = true;
} // endif p1
if (*(p2 - 1) == ' ')
*(p2 - 1) = 0;
else
*p2 = 0;
if (trace) if (trace)
htrc("GetText buf='%s' len=%d rc=%d\n", buf, len, rc); htrc("GetText buf='%s' len=%d rc=%d\n", buf, len, rc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment