使用脚本选项

时间:2016-03-28 13:44:27

标签: format data-interchange

XML,JSON和YAML似乎最适合他们的设计。有没有办法允许脚本,或至少从这些格式中调用函数,返回字符串值并更改数据中元素的值。

长话短说:是否有任何数据交换格式允许通过传递参数来编写脚本或调用函数?

如果没有,那么是否有合理/标准的语法,可以在这些格式中使用这些语法在运行时调用函数?

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

1 个答案:

答案 0 :(得分:1)

你的第一个问题的答案是否定的。对于第二个&#34;是的,XML和YAML有一个合理的语法&#34;

这些是数据格式,这是他们指定的,XML和YAML比JSON强大得多。即使JSON与编程语言无关,除此之外,规范中没有任何内容可以定义可以评估的函数。

当然,在XML和YAML中标记内容很容易(每种都以自己的特定方式)。您只需编写一个程序,在解析期间评估标记并创建输出(来自字符串/标量/复杂类型)。 这会立即回答您似乎没有问过自己的问题:&#34;要评估哪种语言&#39;字符串&#39;用?&#34;编写,其答案是:&#34;您在程序中使用的任何脚本语言来评估标记数据&#34;

从python YAML解析器中调用python解释器进行评估是微不足道的。从编译的编程语言中,您必须调用脚本扩展,或者在程序中构建一个求值程序。您当然也可以通过编译和动态加载来评估,但这可能比使用现有的可编写脚本的语言更难。

您的示例似乎使用基于某种模式的值的解释(以$开头,在字符串中的某处有$。这是错误的方法,因为你必须分析每个字符串并提供一些转义机制来编写实际的$。使用标记/属性来实际告诉解析器需要特殊制作的东西要好得多。