[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Match nodes with a range of values
I would settle for: 1) select all event nodes id=1 2) pass off current() to a named template 3) in a for-each loop, (identify, find, mark, return) the conflicting times -- an ugly <xsl:choose> would suffice, or a simple <xsl:if> if that works. The XML source is not huge, and by examining each event by id makes the source even smaller. Does something like this seem reasonable? What I don't need to do, is return a document tree fragment. (hope that made sense) VISUALLY: I might add a layer to my HTML source that is the presumed overlapping / conflicting scheduled event. I have uploaded a sample of what I have so far here: HTML Sample Result: http://www.meetscoresonline.com/test_sched.html XSLT: http://www.meetscoresonline.com/test_sched.xsl XML Source: http://www.meetscoresonline.com/sched.xml Karl -----Original Message----- From: Michael Kay [mailto:mhk@xxxxxxxxx] Sent: Thursday, July 15, 2004 8:43 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: Match nodes with a range of values > "Select all nodes where current nodes timebeg falls between > the timebeg and timeend of all event 1's". You can do this in XPath 2 as //node[every $n in //node[@id=1] satisfies (@timebeg ge $n/@timebeg and @timebeg le $n/@timeend)] You can't do general joins in XPath 1 (it's not relationally complete). The nearest you can get is <xsl:for-each select="//node"> <xsl:variable name="n" select="."/> <xsl:copy-of select="$n[not(//node[@id=1][@timebeg <= $n/@timebeg or @timeget >= $n/@timeend)]"/> </xsl:for-each> Michael Kay
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|