Bug 11741: Correct display of < > in XSLT result lists
< 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>
This commit is contained in:
parent
7acd7f43a7
commit
dd64903489
1 changed files with 3 additions and 1 deletions
|
@ -215,8 +215,10 @@ sub XSLTParse4Display {
|
|||
}
|
||||
$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\; /\&\; /;
|
||||
|
|
Loading…
Reference in a new issue