< and > are incorrectly transformed into HTML entities on the
XSLT result list when using the GRS-1 indexing mode.
Example:
Record: <TEST>
Result list: <TEST>
HTML source: &lt;TEST&gt
To test:
- catalog a record that contains > and <
- Reindex, without using the -x option
- Confirm the display is correct
- Reindex again, using the -x option
- Confirm the display is now broken
- Apply patch
- Reindex again with and without -x
- Verify that now the display is always correct
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Note: the problem is only visible in GRS-1 setup. It works as expected.
No behaviour change in DOM.
I believe we shouldn't be (de)escaping data ad-hoc, but it seems that GRS-1
needs it because it doesn't handle HTML entities properly. This fix is OK for
GRS-1, unneeded for DOM and probably any other modern search engine.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
}
$sysxml .= "</sysprefs>\n";
$xmlrecord =~ s/\<\/record\>/$itemsxml$sysxml\<\/record\>/;
- if ($fixamps) { # We need to correct the ampersand entities that Zebra outputs
+ if ($fixamps) { # We need to correct the HTML entities that Zebra outputs
$xmlrecord =~ s/\&amp;/\&/g;
+ $xmlrecord =~ s/\&\;lt\;/\<\;/g;
+ $xmlrecord =~ s/\&\;gt\;/\>\;/g;
}
$xmlrecord =~ s/\& /\&\; /;
$xmlrecord =~ s/\&\;amp\; /\&\; /;