在处理的第一阶段需要将 xml(30K 行)转换为模板。
<Test>
<data_type>numeric</data_type>
<value>83.79</value>
</Test>
<OBJECTIVE>
<data_type>string</data_type>
<value>string</value>
</OBJECTIVE>
<EDITIONDATE>
<data_type>string</data_type>
<value>string</value>
<date_format>yyyyDDD</date_format>
</EDITIONDATE>
如果你依赖 value 并且依赖它 value=83.79 - 1 logic value=string 检查是否有 date_format 在同一级别,如果有,则表示日期。我炮制
<xsl:template match="//value">
<xsl:variable name="val" select="string(value)"/>
<xsl:choose>
<xsl:when test="$val = string">
<xsl:text>string</xsl:text>
</xsl:when>
<xsl:when test="$val=83.79">
<xsl:text>numeric</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
只解决了第二个,因为他一直认为他在寻找 83.79 类型转换并没有找到它。解决我的问题的模板应该如何?
这个表达式:
为变量分配一个空字符串,因为当前上下文中没有节点
value
(您已经在表达式中找到了它match
)。显然应该是:
此外,在表达式
按名称与节点
string
进行比较。自然没有这样的节点。应该:
取引号中的文字值。
理论上,这个数字也需要加引号,尽管解析器即使没有引号也能理解这不是主机名。