XMLTemplate

XMLTemplate["string"]

产生一个 TemplateObject, 表示可被诸如 TemplateApply 这样的函数应用的 XML 模板.

XMLTemplate[src]

File[]URL[]CloudObject[] 作为字符串模板的来源.

XMLTemplate[form,args]

产生一个有参数的 TemplateObject,可用于云部署或其他运算.

更多信息和选项

  • XML 中可以使用下来基本标签:
  • <wolfram:slot>TemplateSlot
    <wolfram:expr>TemplateExpression
    <wolfram:if>TemplateIf
    <wolfram:which>多个 TemplateIf
    <wolfram:sequence>TemplateSequence
    <wolfram:with>TemplateWith
    <wolfram:template>TemplateObject
    <wolfram:get>Get
    <wolfram:comment>需要忽略的评论
    <wolfram:verbatim>verbatim XML
  • <wolfram:slot inserter=f>TemplateSlot 中指定选项设置 InsertionFunction->f.
  • <wolfram:expr inserter=f>TemplateExpression 中指定选项设置 InsertionFunction->f.
  • <wolfram:slot/> 等价于 TemplateSlot[1].
  • <wolfram:if test=test>body</wolfram:if> 指定应该绘制 body,如果 test 计算得到 True.
  • <wolfram:which> ... </wolfram:which> 可以包含任意数目的 <wolfram:if ...> ... </wolfram:if>,并且可选单个 <wolfram:else> ... </wolfram:else>. 如果按顺序计算 "if" 测试,第一个计算得到 True,这是 "which" 的最终格式.
  • <wolfram:sequence attr>body</wolfram:sequence> 支持下列属性:
  • values(required)重复 body 的列表或者关联性
    slot1提供给 body 的模板插口的名称
    index2提供给 body 的位置索引名称
    delimitersSequence[]body 的重复之间插入的分隔符
    defaultSequence[]若无数值时应使用的格式
    inserter InheritedInsertionFunction 选项的设置
  • 当应用模板时,<wolfram:with key1=val1 key2=val2 ...>body</wolfram:with> 指定 keyi 应该用 body 中的 vali 替换.
  • <wolfram:template attr>body</wolfram:template> 支持下列属性,它定义了 TemplateObject 的选项,用于 body
  • inserterInheritedInsertionFunction 选项的设置
    combinerInheritedCombinerFunction 选项的设置
  • <wolfram:get attr/> 支持下列属性:
  • path(required)文件或者 URL 路径
    inserterInheritedInsertionFunction 选项的设置
    combinerInheritedCombinerFunction 选项的设置
  • XMLTemplate 具有下列选项:
  • InsertionFunction"HTMLFragment"在插入表达式前应用的函数或者格式
    CombinerFunctionStringJoin在返回结果前用于合并各个部分的函数
  • XMLTemplate[File[]]XMLTemplate[URL[]] 中,将源文件等的内容作为字符串导入.

范例

打开所有单元关闭所有单元

基本范例  (2)

应用一个带有名为 ab 插槽的 XML 模板:

TemplateApply 来做同样的事情:

XMLTemplate 支持和 StringTemplate 一样的语法;当模板被运用的时候,对 <**> 中的表达式进行计算:

在模板字符串中包含模板插槽和一个表达式:

用 XML 标签的、有同等效用的语法:

当你需要将数据注入 XML 属性中时,字符串模板语法会很有用:

范围  (4)

完全支持 File

可将模板置于 Wolfram 云中:

XMLTemplate 的第二个参数可用来把数据绑定到模板上:

可以使用 URL 提取模板:

选项  (2)

InsertionFunction  (1)

插入(inserter)属性可以是一个函数或者是 $ExportFormats 之间选中的字符串:

上面的代码等价于:

InsertionFunction 可以是任何内容:

CombinerFunction  (1)

结合器(combiner)函数也接受格式:

结合器(combiner)函数可以是任何内容:

应用  (9)

<wolfram:slot id='...' inserter='...'>...</wolfram:slot>

简单的使用方法:

使用默认值和插入器:

<wolfram:expr inserter='...'>...</wolfram:expr>

简单的使用方法:

使用数据和插入器:

<wolfram:if test='...'>...</wolfram:if>

测试可以是任何表达式:

<wolfram:which><wolfram:if test='...'>...</wolfram:if></wolfram:which>

使用 which 来对多个 else if 语句进行嵌套:

<wolfram:sequence values='...' ...>...</wolfram:sequence>

基本的使用方法:

使用已命名的变量:

使用插入函数:

使用默认数值(StringTemplate):

使用分隔符:

<wolfram:with key$1='val$1' ...>...</wolfram:with>

<wolfram:get path='...'><wolfram:slot id='...'/>...</wolfram:get>

包括路径的模板. 路径是一个 StringTemplate

改变输出的插入和结合器函数:

扩展一个模板. HTML 页面的模板范例:

使用 get 来覆盖插口(slot):

<wolfram:template ...>...</wolfram:template>

使用模板来创建片断,以覆盖插入和结合器函数:

结合模板和编辑外部模板:

<wolfram:comment>...</wolfram:comment>

<wolfram:verbatim>...</wolfram:verbatim>

使用verbatim来避免语义分析. 允许可选的插入函数:

属性和关系  (1)

XMLTemplate 的运算结果为 TemplateObject:

可能存在的问题  (1)

XMLTemplate 的第二个参数中的数据比 TemplateApply 中的参数的优先级要高:

巧妙范例  (1)

可以把 XMLTemplate 部署到云端. 每一次访问 URL 时,TemplateApply 将渲染模板:

Wolfram Research (2014),XMLTemplate,Wolfram 语言函数,https://reference.wolfram.com/language/ref/XMLTemplate.html.

文本

Wolfram Research (2014),XMLTemplate,Wolfram 语言函数,https://reference.wolfram.com/language/ref/XMLTemplate.html.

CMS

Wolfram 语言. 2014. "XMLTemplate." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/XMLTemplate.html.

APA

Wolfram 语言. (2014). XMLTemplate. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/XMLTemplate.html 年

BibTeX

@misc{reference.wolfram_2024_xmltemplate, author="Wolfram Research", title="{XMLTemplate}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/XMLTemplate.html}", note=[Accessed: 14-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_xmltemplate, organization={Wolfram Research}, title={XMLTemplate}, year={2014}, url={https://reference.wolfram.com/language/ref/XMLTemplate.html}, note=[Accessed: 14-November-2024 ]}