- From: Mike Kienenberger <mkienenb@alaska.net>
- Date: Fri, 11 Mar 2005 09:18:49 -0500
- To: www-forms@w3.org
Rhydian Morris <RMorris@focus-solutions.co.uk> wrote: > I think your XPath should be something like this > > <xforms:itemset > nodeset="instance('scratchpad-locations-work-type')/SubstationDistributionWo > rkType/AllowedWorkType/*[name() = > instance('work_order')/Location/SubstationCode][text() = 'true']"> Thanks! I was trying to do "AllowedWorkType/*/local-name()=" and "AllowedWorkType/child::local-name()=" before as I never found any examples of their usage. It makes sense in retrospect. I've downloaded XFormation2, and I'll take a look through the examples. My biggest problem with XForms is the lack of examples for doing common things like this. For those who follow after, needing the same functionality: My final results was as follows. I changed name() to local-name() and "Description" to "../Description". <xforms:itemset nodeset="instance('scratchpad-locations-work-type')/SubstationDistributionWorkType/AllowedWorkType/*[local- name()=instance('work_order')/Location/SubstationCode][text()='true']"> <xforms:label ref="../Description"/> <xforms:value ref="../Description"/> </xforms:itemset> > -----Original Message----- > From: Mike Kienenberger [mailto:mkienenb@alaska.net] > Sent: 11 March 2005 06:43 > To: www-forms@w3.org > Subject: XPath nodeset filtering by a constant element name defined in > another expression (value of XPath) > > > > I have xml data of this form: > > <SubstationDistributionWorkType> > > <AllowedWorkType> > > <Description>Annunciator</Description> > > <ARS>false</ARS> > > <BRS>true</BRS> > > <BKS>true</BKS> > > <CPS>true</CPS> > > [...] > </AllowedWorkType> > </SubstationDistributionWorkType> > > I want to create a select1 control showing descriptions based on whether the > > 3-letter elements match another expression. > > For example, the following works, but has "BKS" hardcoded in. > > <xforms:select1 ref="WorkType" > > appearance="minimal" class="ctrl select1" > navindex="8"> > > <xforms:itemset > nodeset="instance('scratchpad-locations-work-type')/SubstationDistributionWo > rkType/AllowedWorkType[BKS='true']"> > > > <xforms:label ref="Description"/> > > <xforms:value ref="Description"/> > > </xforms:itemset> > > </xforms:select1> > > > However, instead of a constant element name of "BKS", I want to use the > value from the expression "instance('work_order')/Location/SubstationCode" > as the basis of the element name used as the filter. > > I'm fairly certain that it's a matter of rewriting the filtering rather than > > simple substitution, but I'm not sure where to go from here. > > I've done similar things when I needed to compare a value (rather than an > element name) using this expression > > <xforms:itemset > nodeset="instance('scratchpad-equipment')/SubstationEquipment/Location[Locat > ionID=instance('work_order')/Location/SubstationCode]"> > > > > but I can't seem to figure out the equivalent. > > Thanks, > > -Mike > >
Received on Friday, 11 March 2005 14:17:49 UTC