2016-03-28 16 views
0

XML、JSON、およびYAMLは、設計されたものに最も適しているようです。文字列値を返し、データ内の要素の値を変更する、スクリプトを許可するか、少なくともこれらの形式から関数を呼び出す方法がありますか?スクリプトオプションを使用したデータ交換フォーマット

短い説明:引数を渡して関数のスクリプトや呼び出しを可能にするデータ交換形式はありますか?

何もない場合は、実行時に関数を呼び出すためにこれらの形式内で使用できるもっともらしい/標準的な構文がありますか?

XML例:<Element>$Method("My name is Jeff");<Element>

+0

私には奇妙な質問のようですが、xmlを変換するためにxsl変換を調べることができます。トランスフォームでいくつかの関数を呼び出すことができます。 – Derek

答えて

1

あなたの最初の質問への答えはノーです。 2番目の「はい、XMLとYAMLのためのもっともらしい構文があります」

これらはデータ形式であり、XML形式とYAML形式はJSONよりもはるかに強力です。 JSONでもプログラミング言語には無関係ですが、それ以外は、評価できる関数を定義する方法については何も仕様にはありません。

もちろん、XMLとYAMLでタグ付けするのは簡単です(それぞれ独自の方法で)。構文解析中にタグを評価し、出力(文字列/スカラー/複合型から)を作成するプログラムを作成するだけです。 これは、あなた自身が尋ねたようには思えない質問にすぐ答えます。「評価する文字列はどの文字列でスクリプト化されていますか?」答えは次のとおりです。タグ付きデータ "

PythonのYAMLパーサからは、評価を行うためにPythonインタプリタを呼び出すのは簡単です。コンパイルされたプログラミング言語からスクリプト拡張を呼び出すか、プログラムにエバリュエータを組み込む必要があります。もちろん、コンパイルと動的ロードによって評価することもできますが、既存のスクリプト言語を使用するよりも難しいでしょう。

あなたの例では、あるパターン(文字列のどこかに$を持つ$で始まる)に基づいた値の解釈が使用されているようです。あなたがそれぞれの文字列を分析し、実際の$を書くためのエスケープメカニズムを提供しなければならないので、これを行う間違った方法です。実際にパーザに特別な必要性を作成するようにタグ付け/属性を使用するほうがはるかに優れています。

+0

Anthonありがとう、それは私のためにすべてそれをかなり明確にします。 – AmatuerDev

関連する問題