[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] would like to simplify my XSLT
Subject: [xsl] would like to simplify my XSLT From: Glen Mazza <grm7793@xxxxxxxxx> Date: Mon, 29 Jan 2007 06:08:38 -0800 (PST) |
The following XSLT 1.0 code *works*, but I think it can be greatly simplified--I just don't know the construct needed for the simplification. Given an XML such as this: <data> <documents> <document id="1"/> <document id="2"/> </documents> <persons> <person> <name>Chris</name> <document relid="4"/> <document relid="7"/> </person> <person> <name>John</name> <document relid="2"/> </person> </persons> </data> I want to list all people who *have* documents but do *not* have at least one document that is in the <documents> list. For example, Chris above has no documents in the <documents> list (relid=4 and 7 aren't there), so he would get listed, but John above wouldn't, because his "2" is in the list. This is what I've done (pseudocode, so might have minor errors): <xsl:for-each select="/persons/person"> <xsl:variable name="v_DocumentFound"> <xsl:for-each select="document"> <xsl:variable name="v_relid" select="@relid"/> <xsl:if test="count(/documents/document[@id = $v_relid]) > 0"> <xsl:text>(document found)</xsl:text> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:if test="not(boolean(translate($v_DocumentFound, ' ', '')))"> Document was not found for <xsl:value-of select="name"/> </xsl:if> </xsl:for-each> In other words, I stuff a variable named $v_DocumentFound with text each time a document match is found, then check whether the variable is empty to see whether or not I need to report something. Is this the right way of doing what I am trying to accomplish--or is there a simpler method? Mine seems verbose, like I'm missing something obvious. Thanks, Glen ____________________________________________________________________________________ Food fight? Enjoy some healthy debate in the Yahoo! Answers Food & Drink Q&A. http://answers.yahoo.com/dir/?link=list&sid=396545367
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Referencing XML fragments, David Carlisle | Thread | Re: [xsl] would like to simplify my, Abel Braaksma |
Re: [xsl] Referencing XML fragments, Abel Braaksma | Date | Re: [xsl] Referencing XML fragments, David Carlisle |
Month |