|
Subject: Re: [xsl] xsl grabbing specific data From: "cking" <cking@xxxxxxxxxx> Date: Thu, 9 Sep 2004 10:04:32 +0200 |
Hi Dan,
Maybe you can create an additional xml-file, say 'files.xml':
<files>
<file>boot.ini</file>
<file>compmgmt.msc</file>
...
</files>
And then use
<xsl:variable name="files" select="document('files.xml')/files/file"/> and
<xsl:if test="$files[contains(file-acl/@name, .)]">
to extract only the files you want... something like
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:variable name="files" select="document('files.xml')/files/file"/>
<xsl:template match="/">
<list>
<xsl:apply-templates select="//file-acl-list/file-acl"/>
<!-- NOTE: if possible, pass absolute path rather than "//" -->
</list>
</xsl:template>
<xsl:template match="file-acl">
<xsl:if test="$files[contains(current()/@name, .)]">
<xsl:variable name="filename">
<xsl:call-template name="filename-from-path">
<xsl:with-param name="name" select="@name"/>
</xsl:call-template>
</xsl:variable>
<file name="{$filename}">
<xsl:apply-templates select="ace"/>
</file>
</xsl:if>
</xsl:template>
<xsl:template match="ace">
<xsl:if test="@is-grant = 'true'">
<!-- or do whatever else to handle this -->
<ace trustee="{@trustee}"/>
</xsl:if>
</xsl:template>
<xsl:template name="filename-from-path">
<xsl:param name="name"/>
<xsl:choose>
<xsl:when test="contains($name, '\')">
<xsl:call-template name="filename-from-path">
<xsl:with-param name="name" select="substring-after($name, '\')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$name"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
HTH,
Anton Triest
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] xsl grabbing specific dat, tom jones | Thread | Re: [xsl] xsl grabbing specific dat, tom jones |
| RE: [xsl] Keys, Michael Kay | Date | [xsl] how to return from exsl:node-, Dusan Zatkovsky |
| Month |