我尝试创建一个xslt代码,将元素(Fetchdate)的文本缩减为前10个字符。 我相信正确的功能是" substring",但不幸的是我不能让它工作!
我的起源xml是:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Staff>
<File>staff.php</File>
<Fetchdate>2014-06-13 10:10:11</Fetchdate>
<IdTeam>614</IdTeam>
<StaffMechanicians>20</StaffMechanicians>
<StaffTechnics>6</StaffTechnics>
<StaffPR>12</StaffPR>
<StaffObservers>2</StaffObservers>
<StaffFitnessCoaches>4</StaffFitnessCoaches>
<StaffRepairman>10</StaffRepairman>
<StaffTeamSpirit>20</StaffTeamSpirit>
</Staff>
预期的xml输出:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Staff>
<File>staff.php</File>
<Fetchdate>2014-06-13</Fetchdate>
<IdTeam>614</IdTeam>
<StaffMechanicians>20</StaffMechanicians>
<StaffTechnics>6</StaffTechnics>
<StaffPR>12</StaffPR>
<StaffObservers>2</StaffObservers>
<StaffFitnessCoaches>4</StaffFitnessCoaches>
<StaffRepairman>10</StaffRepairman>
<StaffTeamSpirit>20</StaffTeamSpirit>
</Staff>
谁能帮我生成xslt代码? 感谢。
答案 0 :(得分:4)
表达式应为:
substring(/Staff/Fetchdate, 1, 10)
你必须记住,在Xpath中以1而不是0来表示。
将其放入模板匹配中:
<xsl:template match="Staff/Fetchdate">
<xsl:value-of select="substring(., 1, 10)"/>
</xsl:template>
在这种情况下,另一种可能性是substring-before()
<xsl:template match="Staff/Fetchdate">
<xsl:value-of select="substring-before(., ' ')"/>
</xsl:template>