[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
XSLT call-template question
- From: "Cintron, Jose J." <jcintron@mitre.org>
- To: <xml-dev@lists.xml.org>
- Date: Thu, 9 Nov 2006 11:56:50 -0500
I have an XML doc and XSLT that look that looks like the following
samples. What I want to do is to pull the description of the
vulnerability from a separate document. The problem is that when I
call the FINDING_DETAILS template for some reason I cannot access the
FINDING_ID of the FINDING that I'm currently processing. I tried, just
to see what I got <xsl:variable name="FID"><xsl:value-of
select="self::*"/><xsl:value-of select="$FID"/> and what I got was the
whole finding that I'm processing. That said. How the heck do I
select the FINDING_ID item so that I can assign that value to the
variable and then I use this to pull the correct description from the
external document.
--- BEGIN XML ---
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='DCID_Open.xslt'?>
<IMPORT_FILE xmlns="urn:FindingImport"
xmlns:xi="http://www.w3.org/2001/XInclude/">
<FINDING>
<FINDING_ID>V0006670</FINDING_ID>
<FINDING_STATUS>NR</FINDING_STATUS>
<VUL_NAME>Mechanism in place for key recovery</VUL_NAME>
<SEVERITY>3</SEVERITY>
</FINDING>
.
Repate this many, many times
.
</IMPORT_FILE>
--- END XML ---
--- BEGIN XSLT ---
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:imp="urn:FindingImport">
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>Findings Report</TITLE>
</HEAD>
<BODY style="font-family: sans-serif">
<h3Findings:</h3>
<xsl:apply-templates
select="//imp:FINDING[imp:FINDING_STATUS='O'">
<xsl:sort select="imp:SEVERITY" order="ascending"
data-type="number" />
<xsl:sort select="imp:FINDING_ID" order="ascending"
data-type="text" />
</xsl:apply-templates>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="//imp:FINDING[imp:FINDING_STATUS='O'">
<dl>
<table>
<tr>
<td>
<table>
<tr>
<td><xsl:apply-templates select="imp:SEVERITY" />
</td>
<td><xsl:apply-templates select="imp:FINDING_ID"
/> </td>
</tr>
<tr>
<td colspan="2"><xsl:apply-templates
select="imp:VUL_NAME" /></td>
</tr>
</table>
</td>
</tr>
<tr><td><xsl:call-template name="FINDING_DETAILS" /></td></tr>
<tr><td><xsl:apply-templates select="imp:SCRIPT_RESULTS"
/></td></tr>
<tr><td><xsl:call-template name="TEST" /></td></tr>
</table>
</dl>
</xsl:template>
<xsl:template name="FINDING_DETAILS">
<dd><b><SPAN STYLE="font-style:italic">Details:</SPAN></b></dd>
<dd>
<xsl:variable name="FID"><xsl:value-of
select="..//imp:FINDING_ID/text()"/>
<xsl:value-of
select="document('BaseVulns.xml')//VULNERABILITIES/VULNERABILITY[V_6X=$
FID]/DESCRIPTION" />
</dd>
</xsl:template>
.
Just ignore the rest of the templates they work just fine...
.
</xsl:stylesheet>
--- END XSLT ---
+------------------------------------------
| José J. Cintrón - <jcintron@mitre.org>
|
| MITRE Corporation
| 7515 Colshire Drive
| Mail Stop T330
| McLean, VA 22102-7508
|
| Phone: 703.983.3040
| Fax: 703.983.1397
+------------------------------------------
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]