MATLAB:读取HTML代码(在XML中)

时间:2015-10-02 17:03:23

标签: html xml matlab unicode polish

我正在尝试使用MATLAB读取波兰树库的以下XML文件:http://zil.ipipan.waw.pl/Sk%C5%82adnica?action=AttachFile&do=view&target=Sk%C5%82adnica-frazowa-0.5-TigerXML.xml.gz

波兰语字母似乎被编码为HTML代码:http://webdesign.about.com/od/localization/l/blhtmlcodes-pl.htm

例如,ł代表'ł'。如果我使用'UTF-8'打开​​树库,我会得到像kłaniał这样的单词,它实际上应该显示为'kłaniał'

现在,我看到2个正确读取树库的选项:

  1. 直接读取XML文件,以便将HTML代码转换为相应的字符。
  2. 首先以非解码格式保存单词(例如kłaniał),然后再转换字符。
  3. 是否可以在MATLAB中执行2个选项中的一个(或两者)?

1 个答案:

答案 0 :(得分:0)

非MATLAB解决方案是通过一些外部实用程序预处理文件。例如,安装Ruby后,可以使用HTMLentities gem来取消所有特殊字符。

sudo gem install htmlentities

file.xml成为应该包含ascii-only字符的文件名。转换文件的Ruby代码可以是这样的:

#!/usr/bin/env ruby

require 'htmlentities'
xml = File.open("file.xml").read
converted_xml = HTMLEntities.new.decode xml
IO.write "decoded_file.xml", xml

(要运行该文件,请不要忘记chmod +x以使其可执行)。 或者更紧凑,作为单线

 ruby -e "require 'htmlentities';IO.write(\"decoded_file.xml\",HTMLEntities.new.decode(File.open(\"file.xml\").read))"

然后你可以按照自己的意愿对xml进行后期处理。