[xsl] XML criterias

Subject: [xsl] XML criterias
From: "Chen, Gin" <Gin_Chen@xxxxxxxxxxxxx>
Date: Tue, 2 Jul 2002 15:29:21 -0400
Hi all,
	I have an XML document that I need to parse out certain information.
The information that I'm looking for is in a separate XML generated with my
XSL.
So an example would be (simplified):
//in my xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="C:\NAlert\test.xsl"?>
<datarows>
	<rowset id="100" value="100" blah="A"/>
	<rowset id="200" value="200" blah="B"/>
	<rowset id="300" value="100" blah="C"/>
</datarows>

//inside my xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
	xmlns:fo="http://www.w3.org/1999/XSL/Format";
	xmlns:c="http://tempuri/criteria";>

<xsl:output method="html"/>

<xsl:variable name="para" select="document('')/*/c:criteria/c:parameter"/>

<xsl:template match="//datarows/rowset">
	<xsl:copy-of select="@*[name()=$para/@name and
.=$para/c:value]/parent::*"/>
</xsl:template>

<c:criteria>
	<c:parameter name="id">
		<c:value>100</c:value>
		<c:value>200</c:value>
	</c:parameter>
	<c:parameter name="value">
		<c:value>100</c:value>
	</c:parameter>
</c:criteria>

</xsl:stylesheet>

so i'm basically saying that i want to get all datarows/rowsets that have
ids of either 100 or 200 AND value of 100
the problem is that I'm getting back all rows because its returning true if
any parameter name/value matches.
I dont want to hardcode all the parameter names in to the select because
there could be alot of attributes to check.
Is there a better way to do this but still keeping it generic?
Thanks,
-Tim

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread