“xmlns="VL01" 似乎导致样式表失败(如果删除则可以正常工作),不知道如何解决样式表。我觉得这是基本的 XLST 101,但我很难过把我的大脑包裹在它周围。任何协助将不胜感激。干杯
XML
<?xml version="1.0" encoding="utf-8"?>
<Report xsi:schemaLocation="VL01 http://site.com/ReportServer?%2FVMS%20Reports%2FVL01&rs%3ACommand=Render&rs%3AFormat=XML&rs%3ASessionID=lk44ff55z5q3ck3b5pfuxo45&rc%3ASchema=True" Name="VL01" textbox41="VL01 - Checklist Report
" textbox1946=" 2) Target Element
 Target Element List
 Windows 7
3) Report Options
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="VL01">
<list2>
<Item_Collection>
<Item />
</Item_Collection>
</list2>
<list1>
<list1_Details_Group_Collection>
<list1_Details_Group
Key="V0001070"
EffectiveDate="04 Mar 1998 16:03:47:000"
LongName2="Name..."/>
</list1_Details_Group_Collection>
</list1>
</Report>
XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output method="xml" version="4.0" indent="yes"/>
<xsl:variable name="var-checklist_name">
<xsl:value-of select="substring-after(substring-before(translate(Report/@textbox1946, '
', ''),'3)'),'Target Element List')"/>
</xsl:variable><xsl:template match="/">
<html>
<body>
<table>
<xsl:apply-templates select="Report/list1/list1_Details_Group_Collection"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Report/list1/list1_Details_Group_Collection">
<xsl:for-each select="list1_Details_Group">
<Import_List>
<Checklist_Name>
<xsl:value-of select="normalize-space(translate($var-checklist_name, ' ', ' '))"/>
</Checklist_Name>
<Vuln_ID><xsl:value-of select="number(substring-after(@VulKey,'V'))"/></Vuln_ID>
<Short_Name><xsl:value-of select="substring(@LongName2,1,255)"/></Short_Name>
<Release_Date><xsl:value-of select="substring(@EffectiveDate,1,11)"/></Release_Date>
</Import_List>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>