我正在尝试编辑当前的 XSLT。我想要的功能是当“//code_no”的值以01结尾时我想编辑当前城市位置。目前此功能不存在。
我尝试过使用字符串和子字符串,但它给了我一个错误,说结尾功能不存在。请帮忙
来自 xml 的值是
<code_no>
1870410001
</code_no>
在 xsl 中,我想在值以 01 结尾时打印此内容。
<td align="left" width="33%"><SPAN style="font-size: 12pt; font-family: Arial;">
<a> <b><u><xsl:value-of select="//city"/>, <xsl:value-of select="//state"/>
</u></b></a></SPAN></td>
XPath 1.0 等价于(XPath 2.0)表达式:
ends-with($s, $t)
is:
$t = substring($s, string-length($s) - string-length($t) +1)
你只需要替换$s
and $t
在最后一个 XPath 表达式中分别是要测试的字符串和要测试的结尾。
这是一个完整的例子:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="x|y">
<xsl:value-of select="name()"/> ends-with '_01': <xsl:value-of select=
"'_01' = substring(., string-length() - 2)"/>
=============
</xsl:template>
</xsl:stylesheet>
当此转换应用于以下 XML 文档时(问题中没有提供任何内容!!!):
<t>
<x>abcd_01</x>
<y>abcd_11</y>
</t>
产生了想要的正确结果:
x ends-with '_01': true
=============
y ends-with '_01': false
=============
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)