From 73250ae23ecd5df227afa12b66d03347659d0e95 Mon Sep 17 00:00:00 2001 From: Sorawee Porncharoenwase Date: Sat, 2 Nov 2019 01:40:26 -0700 Subject: [PATCH] only do it for attributes --- racket/collects/xml/private/reader.rkt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/racket/collects/xml/private/reader.rkt b/racket/collects/xml/private/reader.rkt index 825be3a6e7..94654945d3 100644 --- a/racket/collects/xml/private/reader.rkt +++ b/racket/collects/xml/private/reader.rkt @@ -180,7 +180,7 @@ [(gt) ">"] [(quot) "\""] [(apos) "'"] - [else (and (number? name) (string (integer->char name)))])) + [else #f])) (define-struct (EOF source) ()) @@ -302,10 +302,14 @@ [(eq? c delimiter) (read-char in) null] [(eq? c #\&) (let ([entity (expand-entity (lex-entity in pos))]) - (if (pcdata? entity) - (append (string->list (pcdata-string entity)) (read-more)) - ;; more here - do something with user defined entites - (read-more)))] + (append (cond + [(pcdata? entity) + (string->list (pcdata-string entity))] + [(number? (entity-text entity)) + (string (integer->char (entity-text entity)))] + ;; more here - do something with user defined entites + [else '()]) + (read-more)))] [else (read-char in) (cons c (read-more))]))))] [else (if (char? delimiter) (lex-error in pos "attribute values must be in ''s or in \"\"s")