インポートとエキスポート

データのインポートとエキスポート
Import["file","Table"]
ファイルからデータの表をインポート
Export["file",list,"Table"]
リスト list をデータの表としてファイルにエキスポート
表形式のデータのインポートおよびエキスポート
数値からなる配列をファイルout.datにエキスポートする:
ファイルout.datの内容である:
out.datの内容をデータの表としてインポートする:
Import["file","Table"]は多くの種類のテーブル型のデータのインポートに使われる.その際,可能な限りデータファイルの書式を自動的に解釈して処理する.Export["file",list,"Table"]はデータをタブで区切って出力し,数字は2.3E5のようにCやFortranで使われる形式で表現する.
Import["name.ext"]
ファイル名から推測される形式を仮定してのデータのインポート
Export["name.ext",expr]
ファイル名から推測される形式を仮定してのデータのエキスポート
一般データのインポートおよびエキスポート
表形式
行列形式
特別データ形式
表データのための一般的なフォーマット例
ImportおよびExportは表形式データだけでなく,グラフィックス,サウンド,数式および文書全体に対応するデータも扱うことができる.ImportおよびExportはしばしば,データが保存されているファイル名の拡張子を参照して適正な形式を推測できる.「グラフィックスとサウンドのエキスポート」および「ファイルのインポートとエキスポート」ImportおよびExportがどのように働くかの詳細が記載されている.ImportおよびExportはバイナリデータの生ファイルも使うことができる.
JPEG形式のグラフィックスをインポートする:
$ImportFormats
システムでサポートされているインポート可能形式
$ExportFormats
システムでサポートされているエキスポート可能形式
サポートされているインポートおよびエキスポートの完全なリストを表示
ファイルのインポートとエキスポート
Import["file","List"]
ファイルから一次元のデータリストをインポートする
Export["file",list,"List"]
一次元のデータリストとしてファイルに list をエキスポートする
Import["file","Table"]
ファイルから二次元のデータ表をインポートする
Export["file",list,"Table"]
二次元のデータ表として list をファイルにエキスポートする
Import["file","CSV"]
CSV形式のデータをインポートする
Export["file",list,"CSV"]
CSV形式のデータをエキスポートする
リストとデータの表のインポートおよびエキスポート
データリストをファイルout1にエキスポートする:
ファイルの内容を示す:
Wolfram言語に内容を再びインポートする:
データをWolfram言語内だけで使用する場合は,「Wolframシステムファイルの読み書き」に示されているように,構造が保存されている完全なWolfram言語の式として,ファイルにそのまま保存しておくのが一番よい.しかし他のプログラムとデータを交換したい場合は簡単なリストやテーブル形式で保存する方がより便利である.
二次元のデータの配列のエキスポート:
必要であれば,CまたはFortran形式の「E」記号で数値が書き込まれる:
Wolfram言語に配列を再びインポートする:
各行に1個の数値だけがあるファイルではImport["file","List"]により,数値のリストとしてファイルの内容をインポートすることができる.各行がタブやスペースによって区切られた複数の数値からなる場合は,Import["file","Table"]で数値のリストが得られる.ファイルに非数値の項目が含まれる場合は,Wolfram言語の文字列として返される.
文章データと数値データの混合をエキスポートする:
エキスポートされたデータ:
データをWolfram言語に再びインポートする:
InputFormを用いて,文字列を表示することができる:
Import["file","List"]
各行をそれぞれ数値や他のデータ項目として処理する
Import["file","Table"]
各行にある要素をそれぞれ数値や他のデータ項目として処理する
Import["file","String"]
ファイル全体を1個の文字列として処理する
Import["file","Text"]
ファイル全体を1個のテキスト文字列として処理する
Import["file",{"Text","Lines"}]
各行をテキストの文字列として処理する
Import["file",{"Text","Words"}]
切り離された語をテキストの文字列として処理する
異なるフォーマットでファイルをインポートする
2行からなるファイルを作成する:
ファイルの内容を示す:
ファイル全体を単一の文字列としてインポートする:
テキスト行のリストとしてファイルをインポートする:
空白で分離された語のリストとしてファイルをインポートする:
グラフィックスとサウンドのエキスポート
Wolfram言語ではグラフィックスやサウンドをさまざまな形式でエキスポートできる.Wolfram言語でノートブックフロントエンドを使っている場合は,Wolfram言語の提供する機能を使いグラフィックスおよびサウンドを他のプログラムへ直接コピーしたりペーストしたりすることができる.
Export["name.ext",graphics]
グラフィックスをファイル名から判断される形式でファイルにエキスポートする
Export["file",graphics,"format"]
グラフィックスを指定された形式でエキスポートする
Export["!command",graphics,"format"]
グラフィックスを外部コマンドにエキスポートする
Export["file",{g1,g2,},]
グラフィックスの列をアニメーションにエキスポートする
ExportString[graphics,"format"]
エキスポートされたグラフィックスの文字列表現を生成する
Wolfram言語グラフィックスとサウンドのエキスポート
"EPS"
EPS形式 ( .eps )
"PDF"
Adobe Acrobat形式 ( .pdf )
"SVG"
スケーラブルベクターグラフィックス ( .svg )
"PICT"
Macintosh PICT形式
"WMF"
Windowsメタファイル形式 ( .wmf )
"TIFF"
TIFFファイル ( .tif , .tiff )
"GIF"
GIFと動画GIFファイル ( .gif )
"JPEG"
JPEGファイル ( .jpg , .jpeg )
"PNG"
PNG形式 ( .png )
"BMP"
Microsoftビットマップ形式 ( .bmp )
"PCX"
PCX形式 ( .pcx )
"XBM"
X window systemビットマップ ( .xbm )
"PBM"
PBM形式 ( .pbm )
"PPM"
PPM形式 ( .ppm )
"PGM"
PGM形式 ( .pgm )
"PNM"
PNM形式 ( .pnm )
"DICOM"
DICOM医療画像形式 ( .dcm , .dic )
"AVI"
Audio Video Interleave形式 ( .avi )
Wolfram言語のサポートするグラフィックス出力形式(第1セクションの形式はデバイスの解像度に依存しない)
プロットを生成する:
図を,EPS形式でファイルにエキスポートする:
通常,Wolfram言語外部にグラフィックスをエキスポートする場合はグラフィックスが描画されるサイズを絶対値で指定しておく必要がある.これを行うには,ExportImageSizeオプションを指定する.
図の幅を印刷用ポイント数 x で印刷したいときは,ImageSize->x と指定する.ImageSize->72xi とすれば,図を xi インチの幅で印刷することができる.幅のデフォルト値は4インチになっている.ImageSize->{x,y}で図が x×y の領域に収まるようにスケーリングを施す.
ImageSizeAutomatic
印刷用ポイント数での絶対画像サイズ
"ImageTopOrientation"Top
画像の中でファイルをどのような向きにするか
ImageResolutionAutomatic
dpi単位での画像の解像度
Exportのオプション
Wolfram言語内部では,グラフィックスは最終的に描画されるコンピュータ画面や他の出力デバイスに全く依存しない形で操作される.
多くのプログラムおよびデバイスは,EPS等の解像度に依存しないフォーマットでグラフィックスを取り込むことができる.しかし,中にはグラフィックスを指定された解像度で特別なラスターまたはビットマップフォーマットに変換しておかなければ取り込めないものもある.そのような場合は,Exportにビットマップに必要な解像度をインチ当りのドット数(dpi単位)で指定したオプションImageResolutionを設定する.解像度を低く設定すれば画質は劣るが同時に画像を保存するのに必要なメモリ量も低く抑えることができる.よく使われる解像度はスクリーン表示で72dpi以上,プリンタ出力で300dpi以上である.
"DXF"
AutoCADのDXF形式 ( .dxf )
"STL"
STLステレオリソグラフィ形式 ( .stl )
Wolfram言語でサポートされる一般的な3Dジオメトリ形式
"WAV"
Microsoft wave形式 (.wav)
"AU"
μ 法則エンコード ( .au )
"SND"
サウンドファイル形式 (.snd)
"AIFF"
AIFF形式 (.aif, .aiff)
Wolfram言語でサポートされる一般的なサウンドフォーマットの例
Typical sound formats supported by the Wolfram Language.
インポートコンバータの開発
Wolfram言語は,ユーザが自分のファイル形式コンバータを書き,それをWolfram言語のImportExportフレームワークと統合させることのできる関数を提供している.形式コンバータを実装し,Importを使って任意の形式からデータをインポートすることができる.
Wolframシステムには形式コンバータの実装および登録方法を説明するソースコードも含まれている.これらはフォルダ$InstallationDirectory/SystemFiles/Formats/format にある.ここで formatBDFDIFMTPSMILESSurferGridTGFTLEのいずれかである.登録コードはファイルImport.mまたはExport.mにあり,コンバータの実装はConverter.mというファイルにある.
Importと低レベルのコンバータ関数との間のインターフェースは,RegisterExportImportExport`コンテキスト)で指定される.基本的にRegisterImportImportExportフレームワークに,あるファイル形式の特定の要素をインポートするときに特定の関数を呼び出す方法を指示する.
このチュートリアルでは,次のような用語が使われている.
低レベル関数はファイルあるいはストリームを入力として取り,インポートされたデータを含む規則のリストを返す.低レベル関数には次の2つの種類がある.(1) デフォルトインポータは明示的に登録されていない要素をインポートするときに,フレームワークにより呼び出される.(2) 条件付インポータはRegisterImportの第2引数に登録された特定の要素をインポートする.
RegisterImportの第3引数に登録されているポストインポータつまりポストインポート関数は,低レベル関数の出力を入力として取る.
次にまとめたように,RegisterImportにはいくつかの形式がある.このチュートリアルは徐々に高度な例題になり,RegisterImportの使い方すべてを詳細に説明する.
ImportExport`RegisterImport["format",defaultFunction]
タイプ"format"のファイルをインポートするときに,Importフレームワークによりデフォルトで使われる単独の defaultFunction を登録する
ImportExport`RegisterImport["format", {"elem1"conditionalFunction1, "elem2"conditionalFunction2, ,defaultFunction}]
Importフレームワークによりデフォルトで使われる複数要素(elem1, elem2, )およびそれに対応するコンバータ関数(conditionalFunction1, conditionalFunction2, )を登録する.また,要求された要素が登録されたどの要素ともマッチしない場合に使われる defaultFunction を登録する.
ImportExport`RegisterImport["format", {conditionalFuncs,defaultFunction}, {"elem3"postFunction3, "elem4"postFunction4, }]
その入力が低レベル関数のうちの一つの出力となるような追加のコンバータ関数を登録する.

デフォルトインポータ

3行のヘッダの後に4列の数字を含むファイル形式があるとする.

新規形式の登録と実装

一つの方法として,ヘッダ情報と数字をそれぞれ"Header"要素,"Data"要素にインポートするというものがある.これはRegisterImportを使って実装することもできる,
この場合,ImportExportフレームワークに対して,形式"MyFormat1"のどの要素をインポートするときでも,関数MyFormat1`MyFormat1Importを呼び出すよう指示している.
フレームワークはデフォルトではファイル名を低レベル関数に渡すので,MyFormat1`MyFormat1Importは入力としてファイル名とオプションの集合を取る.この関数はElementName->ElementValueという形式の規則のリストを返さなければならない.

新しい形式のファイルのインポート

これでImportの有効なファイル形式として"MyFormat1"が使えるようになった.

条件付未加工インポータ

形式に多数の要素が含まれる場合,特定の低レベル関数を使って特定の要素をインポートすると便利で効率的なことがある.これはRegisterImportの第2引数として "elem"->func という形式の規則のリストを与えることで実行できる.しかし,リストはリスト中で明示的に定義されているどれともマッチしない要素をインポートするときに呼ばれる,デフォルトインポータの名前で終了しなければならない.

条件付インポータによる新規形式の登録と実装

この登録はImportExportフレームワークに,形式"MyFormat2"のファイルのエキスポート方法を指示する.
(1) "Data"要素をインポートするときはMyFormat2`MyFormat2DataImportを使う
(2) その他すべてにはMyFormat2`MyFormat2DefaultImportを使う
低レベル関数は同じ構造を持つ.ファイル名とオプショナルのオプションのリストを取り,ElementName->ElementValueという形式の規則の集合を返す.

MyFormat2を使ったインポート

"MyFormat2"のインポート要素の出力は"MyFormat1"のものと同じであるが,2つの異なる要素に対して2つの異なる関数が呼び出される.

部分要素の指定

フレームワークはデフォルトではPartを使って部分要素をインポートする.
いくつかの大きいデータ集合を含むファイルの場合,特定のデータ集合を直接インポートした方が効率がよいであろう.例えば"EDF"ファイル形式のファイルから直接データ集合をインポートすることができる.
低レベル関数を{elem,subelem}lowlevelFunc の形式で登録することにより,部分要素のインポートを指定することができる.{elem,subelem}lowlevelFunc.
低レベル関数の出力は{elem->{subelem->output}}の形式にマッチしていなければならない.
これまでと同様に,他の低レベル関数の出力は elem->value という形式の規則のリストでなければならない.
文字列の部分要素のインポートは,適切な低レベル関数を呼び出す.

ポストインポータ

他の要素に基づいた要素を構築しなければならない場合がある.例えば,インポートするデータがグレイスケール画像を表す数値のリストである場合,"Image"要素のインポートにはまず"Data"要素のインポートが必要になる.このセクションでは"Graphics"要素と"Image"要素を使った2つの例を紹介する.
ポストインポータはマッチする要素名が存在する場合は条件付きインポータの出力を入力として取る.それ以外の場合はポストインポータはデフォルトインポータの出力を入力として取る.
条件付きインポータおよびデフォルトインポータと異なり,ポストインポータは要素の値を返すだけである.

ポストインポータを使った新規形式の登録と実装

条件付きインポータとポストインポータとの違いを説明するために,"MyFormat2"を2つの追加要素"Graphics""Image"で拡張する."Graphics"要素は条件付きインポータを介してインポートされるが,"Image"要素はポストインポータを介してインポートされる.
次の登録はImportExportフレームワークに形式"MyFormat3"のファイルのインポート方法を指示するものである.
(1) "Header"要素か"Graphics"要素の場合は,対応する条件付きインポータを呼び出す.
(2) "Image"要素の場合は,デフォルトインポータをまず呼び出してからその出力をMyFormat3`MyFormat3ImageImportの入力として使う.
(3) その他すべての要素の場合は,デフォルトインポータを呼び出す.
条件付きインポータおよびデフォルトインポータは,前と同じ構造を持つ.
"Graphics"インポータは明示的にデフォルトインポータを呼び出し,手動でデータを抽出しなければならない.
条件付きインポータとして登録される"Image"要素はないので,"Image"要素のインポータはデフォルトインポータの出力を入力として取る.

MyFormat3を使ったインポート

ユーザの立場からすると,要素の実装にポストインポート関数が使われていても低レベル関数が使われていても差はない.
"Graphics"要素は条件付きインポータとして登録される:
"Image"要素のインポートではポストインポータのMyFormat3`MyFormat3ImageImportが呼ばれる:

RegisterImportのオプション

RegisterImportには大きな柔軟性を可能にするオプションがいくつかある.

"FunctionChannels"と"BinaryFormat"

上の例では低レベル関数は引数としてファイル名を取り,そのファイルへのストリームを開く.RegisterImportのオプションとして"FunctionChannels"->{"Streams"}を指定することにより,フレームワークはInputStreamを低レベル関数に直接渡すことができる.
オプション"BinaryFormat"->Trueを指定すると,フレームワークはバイナリストリームを低レベルインポータに渡す.
"FunctionChannels"のデフォルト値は{"FileNames"}である."BinaryFormat"のデフォルト値はFalseである.
ImportExport`RegisterImport["format",eFunc,{},"FunctionChannels"->{"Streams"}]として登録された形式では,eFunc のシグネチャは eFunc[strm_InputStream,opts___]であり,フレームワークは eFunc に(非バイナリ)ストリームを渡す.

"AvailableElements"

条件付きインポータとしてもポストインポータとしても明示的に登録されていない要素をインポートする場合,デフォルトではフレームワークはデフォルトインポータを評価する.デフォルトインポータにマッチする要素が見付からない場合は,フレームワークはエラーメッセージを出力し,$Failedを返す.
指定されたリストに存在しない要素のインポートを試みる場合,オプション"AvailableElements"->{elem1,elem2,}を指定すると,フレームワークは直接$Failedを返し,低レベルインポータを呼ばずにエラーメッセージを出力する.
ImportExport`RegisterImport["format",{"elem1":>eFunc1,"elem2":>eFunc2,eDefaultFunc},{},"AvailableElements"->{"elem1","elem2","Data"}]
として登録された形式では,
Import[filename,{"format","foo"}]を呼ぶと,フレームワークはデフォルトインポータの eDefaultFunc を評価せずに$Failedを返す.
"AvailableElements"->{"elem1","Data"}と指定するのは誤りである.この場合,"elem2""AvailableElements"により指定されたリストではないため,Import[filename,{"format","elem2"}]$Failedを返す.

"DefaultElement"

"DefaultElement"->elemelem は要素の名前)を指定すると,Import要素が指定されていない場合にフレームワーク elem をインポートする.

"Sources"

オプション"Sources"->{path1,path2,}は.mファイル,.mxファイル,低レベル関数の定義を含むWolfram Symbolic Transfer Protocol (WSTP) .exeファイルへのファイルパスを指定するために使うことができる.フレームワークはソースファイルに応じてGetあるいはInstallを自動的に使い分ける.
エキスポートコンバータの開発
Wolfram言語では,ファイル形式のコンバータを実装し,Wolfram言語のImportExportフレームワークと統合させることのできる機能が提供されている.形式コンバータを実装し,Exportを使ってカスタマイズされた形式からデータをエキスポートすることができる.
Exportと低レベルのコンバータ関数との間のインターフェースは,RegisterExportImportExport`コンテキストにある)で指定される.基本的にRegisterExportは,Wolfram言語式をあるファイル形式にエキスポートするときのさまざまな関数の呼出し方をImportExportフレームワークに伝える.
Wolfram言語にはさまざまなコンバータのソースコードも含まれている.これらはフォルダ$InstallationDirectory/SystemFiles/Formats/format にある.ここで formatBDFDIFMTPSMILESSurferGridTGFTLEのいずれかを指す.登録コードはファイルImport.mおよび/またはExport.mにあり,コンバータのソースはConverter.mというファイルにある.

形式登録

まずExport形式を登録しなければならない.Import形式の登録と異なり,RegisterExportは1つの関数しか受け入れない.
ImportExport`RegisterExport["format",function]
ファイルを形式 format にエキスポートしたとき,Exportフレームワークにより function が使われるよう登録する

コンバータ関数を書く

この例では,各コードがシングルスペースで区切られた,各文字のASCIIコードによるASCII文字列を符号化するファイル形式を想定する.この形式のコンバータ関数はRegisterExportを使ってImportExportフレームワークに加えることができる.
Export[file.ext,"str","MyExportFormat"]を使うと,フレームワークは出力ファイルの名前とデータ str をエキスポータに渡すので,エキスポータ関数の例は次のように書くことができる.
これで"MyExportFormat"は他のファイル形式と同様にExportで使うことができるようになった.

コンバータ関数の要素とオプション

常に要素をインポートするImportとは異なり,Exportは式(上記の例題を参照)や規則のリストを elementName->elementValue という形式で直接エキスポートすることができる.
要素はオプションとして指定することができる,つまり,要素は他のオプションすべてとともに常にコンバータ関数に渡されるのである.ここで,要素およびオプションの取り扱いを説明するために,自明のコンバータを示す.
式を使って直接エキスポートする:
要素を介してエキスポートする:
オプションを付けて要素を介してエキスポートする:
要素をオプションとして登録し,要素を介してエキスポートする:
"Options"->{"opt1","opt2"}と指定すると,要素"opt1""opt2"はオプションとして自動的にエキスポータに渡される.
インポート/エキスポートコンバータの自動ロード
Wolfram言語はImportExportのインターフェースに加え,ImportExportのフレームワークで使用される形式の登録を簡単にする自動ロードメカニズムを備えている.

自動ロードと手動ロード

手動ロード

コンバータを手動ロードする例は,チュートリアルに含まれているが,その場合"MyFormat1"を登録するコマンドを明示的に実行しなければならない.

自動ロード

形式登録とコンバータを適切な場所に置くと,Wolfram言語はその形式登録を自動的にロードすることができる.ImportExportのコンバータの自動ロードは,次の手順に従って行う.
(次の手順では,$UserBaseDirectoryでも$BaseDirectoryでも使える.)
1. $UserBaseDirectory/SystemFiles/Formatsというディレクトリがない場合は,これを作成する.
2. $UserBaseDirectory/SystemFiles/Formatsの中に format という名前のディレクトリを作成する.ここで format というのは自動ロードする形式名である.
3. format ディレクトリの中で,Import.mという名前のファイルにImportExport`RegisterImport[]というコードブロックを加える.
例えば,ディレクトリ$UserBaseDirectory/SystemFiles/Formats/MyFormat1の中のファイルImport.mの内容は次のようになる.
4. format ディレクトリの中で,Converter.mというファイルにコンバータのソースコードを置く.
ディレクトリ$UserBaseDirectory/SystemFiles/Formats/MyFormat1の中のファイルConverter.mの内容は次のようになる:
5. ファイルが揃ったら,Wolfram言語を起動したときに$ImportFormatsにエントリ"MyFormat1"が含まれ,Import[ file,{"MyFormat1","Header"}]が適切に評価される.
実際,Wolfram言語でサポートされるファイル形式はすべてこの自動ロードメカニズムを使って登録されており,形式登録は$InstallationDirectory/SystemFiles/Formatsにある.
さらに,Wolfram言語の形式のいくつかはディレクトリ$InstallationDirectory/SystemFiles/Formatsでソース形式で利用できるようになっている.

登録メカニズムの詳細

ディレクトリ名は形式名と一致していなければならない
自動ロードメカニズムを使う場合,フォルダ名はその形式名と同じでなければならない.形式には以下の形式エイリアスを使い,実質的には異なる名前が付けられる.
ソースファイルが標準の場所にない場合は,明示的に"Sources"を指定しなければならない
自動ロードメカニズムを使う場合,Import/Exportフレームワークはソースファイルが$UserBaseDirectory/SystemFiles/Formats/format/Converter.mか$BaseDirectory/SystemFiles/Formats/format/Converter.mにあるものと想定する.ソースファイルが別の場所にある場合は,"Sources"->{"MyFormatConverter/Converter.m","MyFormatConverter/Converter2.m" }のように"Sources"オプションを使って明示的に宣言しなければならない.
コンフリクトの解決
コンフリクトがある(例えば"MyFormat"ディレクトリが$InstallationDirectory/SystemFiles/Formatsの中にも$UserBaseDirectory/SystemFiles/Formatsの中にもある)場合,$UserBaseDirectoryの登録が最優先され,次に$BaseDirectory$InstallationDirectoryの登録が使われる.

形式エイリアスの定義

ある形式をいくつかの別の名前で参照できるよう,形式のエイリアスを定義しておくと便利なことがよくある.例えば,"MyFormat1"のエイリアスとして"MyOtherFormat""MyDefaultFormat"が使いたい場合,下のような内容を持つファイル$UserBaseDirectory/SystemFiles/Formats/FormatMappings.mを作るとよい.
このエイリアスはもとの形式と同じように動作する:
もとの形式は同じ情報を返す:
TeXの生成
Wolframシステムのノートブックは,技術文書を作成するための優れた環境を提供している.しかし,特に,ノートブックにあるWolfram言語式を既存のTeX文書に組み合せて使いたい場合は,TeXFormを使い,それらをTeXの入力として適切な形に変換することができる.
TeXForm[expr]
TeXの形式で式 expr を出力する
TeX形式によるWolfram言語の出力
式を入力する.出力は標準的なWolfram言語表記法で表示される:
同じ式をTeX記述で出力させる:
ToExpression["input",TeXForm]
TeXをWolfram言語に変換
TeXの文字列をWolfram言語に変換
これによりTeXの文字列がWolfram言語に変換される.文字列の前に2個のバックスラッシュが必要となるので注意のこと:
ノートブック用フロントエンドは,個々の式をTeXに変換できるだけでなく,ノートブック全体をTeXに変換する機能も備えている.この機能は通常,ノートブックフロントエンドのファイル 別名で保存...メニューからアクセスできる.
Webでの資料交換
Export["file.html",nb]
ノートブック nb をHTML形式で保存する
ノートブックをHTMLに変換
ExportにはHTMLのエキスポートに適用することのできるオプションが多数あり,Webのブラウザの特徴に合わせて変換方法を指定することができる.
MathMLForm[expr]
expr をMathML形式で出力する
MathMLForm[StandardForm[expr]]
伝統的な数学表記ではなくStandardFormを使う
ToExpression["string",MathMLForm]
MathMLの文字列をWolfram言語の入力として解釈する
MathMLへの変換とMathMLからの変換
MathML形式で出力された式である:
MathMLをWolframシステムのノートブックにペーストすると,Wolframシステムはこれを自動的にWolfram言語の入力に変換しようとする.ノートブックフロントエンドの形式を選択してコピーを使って式をMathMLとしてノートブックからコピーすることもできる.
Export["file.xml",expr]
XML形式でエキスポート
Import["file.xml"]
XMLからインポート
ImportString["string","XML"]
XML文字列からデータをインポート
XMLのインポートとエキスポート
Wolfram言語式と同じようにXMLもデータを表現する一般的な形式である.Wolfram言語は自動的に特定のタイプの式を特定のタイプのXMLに変換したり,その逆を行ったりする.MathMLはその一例である.別の例として,グラフィックスに対応するSVGがある.
Wolfram言語に一般的なXMLをインポートするように指示すると,Wolfram言語はSymbolicXML式を作成する.<elem attr='val'>data</elem>という形の各XML要素はXMLElement["elem",{"attr"->"val"},{data}]という形式のWolfram言語のSymbolicXML式に変換される.XMLをSymbolicXMLとしてインポートしたら,Wolfram言語の強力な記号プログラミング機能を使ってその式を操作することができる.結果はExportを使ってXML形式でエキスポートできる.
XMLElementがXML文字列のa要素を表すSymbolicXML式を生成する:
このSymbolicXMLには2つのネストしたレベルがある:
これはSymbolicXMLの単純な変換を行う:
結果をXML文字列で示したものである:
Import["http://url",]
アクセス可能なURLからファイルをインポートする
Import["ftp://url",]
FTPサーバからファイルをインポートする
Webソースからデータをインポート
以下で,Webサイトから画像をインポートする: