home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource.old / 11_8.tcl < prev    next >
Text File  |  2003-04-15  |  648b  |  31 lines

  1. #
  2. # Example 11-8
  3. # Html_DecodeEntity.
  4. #
  5.  
  6. proc Html_DecodeEntity {text} {
  7.     if {![regexp & $text]} {return $text}
  8.     regsub -all {[][$\\]} $text {\\&} new
  9.     regsub -all {&#([0-9][0-9]?[0-9]?);?}  $new {\
  10.         [format %c [scan \1 %d tmp;set tmp]]} new
  11.     regsub -all {&([a-zA-Z]+)(;?)} $new \
  12.         {[HtmlMapEntity \1 \\\2 ]} new
  13.     return [subst $new]
  14. }
  15. proc HtmlMapEntity {text {semi {}}} {
  16.     global htmlEntityMap
  17.     if {[info exist htmlEntityMap($text)]} {
  18.         return $htmlEntityMap($text)
  19.     } else {
  20.         return $text$semi
  21.     }
  22. # Some of the htmlEntityMap
  23. array set htmlEntityMap {
  24.     lt    <    gt    >    amp    &
  25.     aring        \xe5        atilde        \xe3
  26.     copy        \xa9        ecirc        \xea        egrave        \xe8
  27. }
  28.  
  29.  
  30.