Xml XSLT函数;“前的子字符串”&引用;“后的子字符串”;
我有以下XML代码Xml XSLT函数;“前的子字符串”&引用;“后的子字符串”;,xml,xslt,xpath,Xml,Xslt,Xpath,我有以下XML代码 <Testlog> <Event Type="General" Headline="Sys_TmxProcesses: Step: 1; Action:" Result="INFORMATION"> </Event> <Event Type="General" Headline="Test_013 testMain: Step 1 Passed" Result="INFORMATION"&
<Testlog>
<Event Type="General"
Headline="Sys_TmxProcesses: Step: 1; Action:"
Result="INFORMATION">
</Event>
<Event Type="General"
Headline="Test_013 testMain: Step 1 Passed"
Result="INFORMATION">
</Event>
<Event Type="General"
Headline="logStepBegin: Step: 1.001; Action:"
Result="INFORMATION">
</Event>
<Event Type="General"
Headline="onErrorExit: Step 4.001 Failed"
Result="WARNING">
</Event>
<Event Type="Script End"
Headline="Script end [DSE.DseBalanceInquiry_FC_Test_013]"
Result="WARNING">
</Event>
<Event Type="Script End"
Headline="Script end [DSE.DseBalanceInquiry_FC_Test_001]"
Result="FAIL">
</Event>
</Testlog>
现在我只想抓住
1.类型
2.结果
3.“步骤编号”,我必须从标题中获得
4.标题
5.“步骤状态”,我必须从标题中获取,标题位于步骤编号之后
下面的xslt给出了类型、结果和标题的值。
但是我无法得到
(1) 步骤编号(仅应显示编号)
(2) 步骤状态(通过/失败不应显示数字)
报告
类型
结果
步骤号
大字标题
步骤状态
我认为应该在调用后嵌套子字符串,以解析步骤编号和状态
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Report</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Type</th>
<th style="text-align:left">Result</th>
<th style="text-align:left">Step Number</th>
<th style="text-align:left">Headline</th>
<th style="text-align:left">Step Status</th>
</tr>
<xsl:for-each select="Testlog/Event[@Result='WARNING' or @Result='FAIL' or contains(@Headline, 'Step ')]">
<tr>
<td><xsl:value-of select="@Type"/></td>
<td><xsl:value-of select="@Result"/></td>
<td><xsl:value-of select="substring-before(substring-after(@Headline,'Step '),' ')"/></td>
<td><xsl:value-of select="@Headline"/></td>
<td><xsl:value-of select="substring-after(substring-after(@Headline,'Step '),' ')"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
报告
类型
结果
步骤号
大字标题
步骤状态
萨加尔已经回答了这里和这里的问题,请停止反复问本质上相同的问题。感谢您的时间和回复
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Report</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Type</th>
<th style="text-align:left">Result</th>
<th style="text-align:left">Step Number</th>
<th style="text-align:left">Headline</th>
<th style="text-align:left">Step Status</th>
</tr>
<xsl:for-each select="Testlog/Event[@Result='WARNING' or @Result='FAIL' or contains(@Headline, 'Step ')]">
<tr>
<td><xsl:value-of select="@Type"/></td>
<td><xsl:value-of select="@Result"/></td>
<td><xsl:value-of select="substring-before(substring-after(@Headline,'Step '),' ')"/></td>
<td><xsl:value-of select="@Headline"/></td>
<td><xsl:value-of select="substring-after(substring-after(@Headline,'Step '),' ')"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>