0

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

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

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

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

4

1 回答 1

1

你的第一个问题的答案是否定的。对于第二个“是的,XML 和 YAML 有一种合理的语法”

这些是数据格式,这就是它们所指定的,XML 和 YAML 比 JSON 更强大。甚至 JSON 也是与编程语言无关的,除此之外,规范中没有关于定义可评估函数的方法的任何内容。

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

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

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

于 2016-03-28T14:50:23.367 回答