1

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

たとえば、ł「ł」を表します。kłaniał「UTF-8」を使用してツリーバンクを開くと、実際には「kłaniał」と表示されるはずの のような単語が表示されます

ここで、ツリーバンクを正しく読み取るための 2 つのオプションが表示されます。

  1. HTMLコードが対応する文字に変換されるように、XMLファイルを直接読み取ります。
  2. 最初に単語をデコードされていない形式 (たとえばkłaniał) で保存してから、後で文字を変換します。

MATLAB で 2 つのオプションのいずれか (または両方) を実行することは可能ですか?

4

1 に答える 1

0

MATLAB 以外のソリューションは、何らかの外部ユーティリティを使用してファイルを前処理することです。たとえば、Ruby がインストールされていれば、HTMLentitiesgem を使用してすべての特殊文字をエスケープ解除できます。

sudo gem install htmlentities

file.xmlasciiのみの文字で構成されるファイル名にしましょう。ファイルを変換する 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 を後処理できます。

于 2015-10-05T11:17:25.450 に答える