Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Pattern problem >Thread Next - Re: Pattern problem Re: Pattern problemTo: NULL Date: 8/12/2008 7:26:00 AM When you say the name do you mean the formName element, name doesn't make sense as the element name is form which you already know? <xsl:value-of select="ancestor::form[primary='true']/formName"/> "I was just guessing on this statement and not sure how to get it to work" You're not going to get far in XSLT like this, get a good reference such as Michael Kay's latest tome from Wrox, XSLT 4th Edition. -- Joe Fawcett (MVP - XML) http://joe.fawcett.name "tshad" <tshad@d...> wrote in message news:eByPhqB$IHA.1036@T...... > I can't seem to get this pattern to work: > > I have stripped down my files for testing: > > In a nutshell, what I am trying to do is this: > > <xsl:when test="ancestor::form/@name = '1007'"> > <xsl:value-of select="name[ancestor::form/primary='true']"/> > </xsl:when> > > If the form/@name = '1007', I want to go look at the other form tags to > find the one that has an attribute primary='true' and use that name for my > form name. But I am getting a blank entry. I was just guessing on this > statement and not sure how to get it to work: > > My xslt file: > ***************************************************** > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <xsl:output method="xml" indent="yes"/> > <xsl:template match="/*"> > <xsl:copy> > <xsl:apply-templates select="appraisal/data/form/tag | > appraisal/data/form/section/tag"> > <xsl:sort select="ancestor::form/@primary" order="descending"/> > <xsl:sort select="ancestor::section/@number" order="ascending" > data-type="number"/> > </xsl:apply-templates> > </xsl:copy> > </xsl:template> > <xsl:template match="tag"> > <form> > <sectionNumber> > <xsl:value-of select="ancestor::section/@number"/> > </sectionNumber> > <primary> > <xsl:value-of select="ancestor::form/@primary"/> > </primary> > <formName> > <xsl:choose> > <xsl:when test="ancestor::form/@name = '1007'"> > <xsl:value-of select="name[ancestor::form/primary='true']"/> > <--------- > </xsl:when> > <xsl:otherwise> > <xsl:value-of select="ancestor::form/@name"/> > </xsl:otherwise> > </xsl:choose> > </formName> > <tagName> > <xsl:value-of select="@name"/> > </tagName> > <flags> > <xsl:if test="not(@flags)"> > <xsl:attribute name="xsi:nil">true</xsl:attribute> > </xsl:if> > <xsl:value-of select="@flags"/> > </flags> > <format> > <xsl:if test="not(@format)"> > <xsl:attribute name="xsi:nil">true</xsl:attribute> > </xsl:if> > <xsl:value-of select="@format"/> > </format> > <value> > <xsl:value-of select="text()"/> > </value> > </form> > <xsl:apply-templates select="addendum[heading | body]"/> > </xsl:template> > </xsl:stylesheet> > ****************************************************** > > My xml file: > ****************************************************** > <?xml version="1.0" encoding="utf-8"?> > <Report> > <appraisal> > <data> > <form name="1007" primary="false"> > <section type="subject" number="0"> > <tag name="GR_AGE.1" flags="1" format="4096">4 Yrs.</tag> > </section> > </form> > <form name="reffee" primary="false"> > <tag name="FFHD_NFIP_COMMUNITY_NUMBER.1" flags="0" > format="0">040040</tag> > </form> > <form name="1004_05" primary="true"> > <section type="subject" number="0"> > <tag name="PROP_PHYS_DEFICIENCIES_DESC.1" flags="4" > format="4096">None apparent </tag> > </section> > </form> > </data> > </appraisal> > </Report> > ******************************************************** > > My result: > ****************************************************** > <?xml version="1.0" encoding="utf-8"?> > <Report> > <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <sectionNumber>0</sectionNumber> > <primary>true</primary> > <formName>1004_05</formName> > <tagName>PROP_PHYS_DEFICIENCIES_DESC.1</tagName> > <flags>4</flags> > <format>4096</format> > <value>None apparent </value> > </form> > <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <sectionNumber></sectionNumber> > <primary>false</primary> > <formName>reffee</formName> > <tagName>FFHD_NFIP_COMMUNITY_NUMBER.1</tagName> > <flags>0</flags> > <format>0</format> > <value>040040</value> > </form> > <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <sectionNumber>0</sectionNumber> > <primary>false</primary> > <formName></formName> <-------- Want this to be > 1004_05 > <tagName>GR_AGE.1</tagName> > <flags>1</flags> > <format>4096</format> > <value>4 Yrs.</value> > </form> > </Report> > ******************************************************* > > Everything else works fine. > > What should that line be? Do I need to do another match and template? > > Thanks, > > Tom > | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
