html - 将 XSLT 属性解析为数组
问题描述
我正在使用 XSLT 从 XML 创建 HTML 表单。表单是动态创建的。没有现成的teamplate。用户需要多少输入就可以多少。我想让它尽可能短,所以我使用属性在选择标签中创建例如选项。问题是我不知道如何打开这个 XML:
<input mapTo="dropdown" nameId="sampleId" inputDomain="[a, b, c, d, e]" />
进入:
<select id="sampleId">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
我的问题正是inputDomain
属性。我可以修改一个更简单的方法,但我想将它保存在一个属性中(如数组)。是否可以?或者,也许你有更方便的想法?
解决方案
考虑以下示例:
XML
<input mapTo="dropdown" nameId="sampleId" inputDomain="a,b,c,d,e" />
XSLT 2.0
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="input">
<select id="sampleId">
<xsl:for-each select="tokenize(@inputDomain, ',')">
<option value="{.}">
<xsl:value-of select="." />
</option>
</xsl:for-each>
</select>
</xsl:template>
</xsl:stylesheet>
结果
<?xml version="1.0" encoding="UTF-8"?>
<select id="sampleId">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
推荐阅读
- twitter-bootstrap - Bootstrap 不固定按钮
- python - 从保存在集合中的标准输出拆分行
- c++ - VirtualAllocEx 抛出 ERROR_INVALID_HANDLE
- c++ - 毫不拖延地将作业传递给另一个函数
- c# - 我收到“SQLite 错误 14:'无法打开数据库文件'”。
- c# - SetDestination() 有时不适用于路径不完整的 NavMeshAgent
- .net - 如何理解不同版本的框架 (System.*) NuGet 包之间的变化?
- c++ - OpenGL GLM 矩阵/向量未正确初始化
- r - R在R中展平不同长度的嵌套列表(谷歌地理编码API输出)
- flutter - 颤振如何像附加的图像一样向数据列添加颜色,而不导入任何包