[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] XSLT call-template question
- From: "Joe Fawcett" <joefawcett@hotmail.com>
- To: xml-dev@lists.xml.org
- Date: Thu, 09 Nov 2006 17:23:52 +0000
Jose
You rarely need the match on a xsl:template to start with //. So you can
change:
<xsl:template match="//imp:FINDING[imp:FINDING_STATUS='O'"> to
<xsl:template match="imp:FINDING[imp:FINDING_STATUS='O'">
(Not sure you need the predicate either but I don't know the whole code)
An obsession with using //in XPath expressions seems all too common, not
sure why, perhaps there are a lot of poor examples online :)
If you want the <FINDING_ID> element in the <xsl:template
name="FINDING_DETAILS"> then you could pass it in:
<xsl:call-template name="FINDING_DETAILS">
<xsl:with-param name="FID" select="imp:FINDING_ID"/>
then:
<xsl:template name="FINDING_DETAILS">
<xsl:param name="FID"/>
>From: "Cintron, Jose J." <jcintron@mitre.org>
>To: <xml-dev@lists.xml.org>
>Subject: [xml-dev] XSLT call-template question
>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
>+------------------------------------------
>
>_______________________________________________________________________
>
>XML-DEV is a publicly archived, unmoderated list hosted by OASIS
>to support XML implementation and development. To minimize
>spam in the archives, you must subscribe before posting.
>
>[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
>Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
>subscribe: xml-dev-subscribe@lists.xml.org
>List archive: http://lists.xml.org/archives/xml-dev/
>List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]