我使用xml进行自动化proj,我有以下xml doc
<output>
<line index="1">Copyright 2010 BMC Software Ltd, Version: 1.6.2 </line>
<line index="2">Connecting to remote service...</line>
<line index="3">Connected to remote host.</line>
<line index="4">SERVICE_NAME: sqlagent$sqlinst </line>
<line index="5">TYPE: 10 WIN32_OWN_PROCESS </line>
<line index="6">STATE: 4 RUNNING </line>
<line index="7">(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)</line>
<line index="8">WIN32_EXIT_CODE: 0 (0x0)</line>
<line index="9">SERVICE_EXIT_CODE: 0 (0x0)</line>
<line index="10">CHECKPOINT: 0x0</line>
<line index="11">WAIT_HINT: 0x0</line>
<line index="12">Remote application exited with code: 0 </line>
</output>
我需要将行索引6的输出作为运行或停止状态,所以我使用了以下xml sylesheet
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="vlength">
<xsl:copy-of select="/output/line[@index=6]"/>
</xsl:variable>
<xsl:value-of select="string-length($vlength)"/>
</xsl:template>
<xsl:template match="/">
<dayOfMonth>
<xsl:value-of select="substring(/output/line[@index=6],0,40)"/>
</dayOfMonth>
</xsl:template>
</xsl:stylesheet>
但不知怎的,我没有得到理想的结果,你能帮帮我吗? 以下是快照
所以我需要输出运行或停止 它的最后9个字母
答案 0 :(得分:1)
使用以下内容:substring('string',9) - 从第9个索引开始,它将打印字符串的其余部分。
<xsl:value-of select="substring(output/line[6],9)"/>
答案 1 :(得分:1)
请尝试使用以下XSLT获取字符串最后9个字符的值。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="status" select="output/line[@index = 6]" />
<xsl:variable name="stringLength" select="string-length($status)" />
<xsl:template match="/">
<status>
<xsl:value-of select="normalize-space(substring($status, $stringLength - 9, $stringLength))" />
</status>
</xsl:template>
</xsl:stylesheet>
这提供了所需的输出,如下所示
<status>RUNNING</status>