[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Process some elements, but not others...

Subject: Re: Process some elements, but not others...
From: Ted Stresen-Reuter <tedmasterweb@xxxxxxx>
Date: Fri, 14 Feb 2003 10:39:36 -0600
element bu
Hi Mike,

Thanks for the reply. I'm still new at XSLT so I'm not sure I fully understand the concept presented, but I tried it, to the best of my ability, and it didn't work. I think it's time to come forth and just be honest...

I'm trying to lend a hand on the htdig project (http://www.htdig.org/). They have a document called defaults.xml which contains the default values for the configuration attributes. I've documented what I'm working on here: http://www.tedmasterweb.com/htdig/

I've tried a variety of variations on the procedure you suggest, but it just doesn't seem to work, so, I'm reposting the question with a little better example...

Sample XML
<HtdigAttributes>
<attribute name="accents_db" type="string_list" programs="htdig">
<example>search_algorithm, search_results_header</example>
<description>
<p>bla bla bla bla bla bla <strong>bla bla</strong> bla bla bla <em>bla</em></p>
<p>bla bla <ref>bla</ref> bla, bla!</p>
</description>
</attribute>
</HtdigAttributes>


Sample XSL
<xsl:output method="xml"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
doctype-public="-//W3C/DTD XHTML 1.0 Transitional//EN" indent="yes" encoding="ISO-8859-1" />


<xsl:template match="/">
    <xsl:apply-templates />
</xsl:template>

<xsl:template match="HtdigAttributes">
    <xsl:apply-templates select="attribute" />
</xsl:template>

<xsl:template match="attribute">
<!-- we do a bunch of fun transofrmations here -->
<xsl:value-of select="@name" />
<xsl:value-of select="@type" />
<!-- would like to have the value of the description node here, but with all HTML elements left in tact and all "ref" elements transformed -->
</xsl:template>


Any suggestions on changes that would make your suggestion work in this context?

Thanks again!

Ted

On Thursday, February 13, 2003, at 09:25 PM, Mike Brown wrote:

Ted Stresen-Reuter wrote:
I have an xml document whose elements contain html as in the following
example:

<myelement>
     <p>This is <ref>the</ref> text node</p>
</myelement>

What I'd like to be able to do is transform just the ref element and
copy all the others.

This is more or less in the XSLT 1.0 spec, under Copying.


The "identity transform" described there is a template that has a relatively
low priority and recursively copies all nodes from the source tree to the
result. If you supplement that template with another that, by virtue of
matching with a more specific node test than the other, has a higher priority,
then you can override the identity transform for certain elements:


<!-- identity transform -->
<xsl:template match="@*node()">
  <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
</xsl:template>

<!-- replace a ref element with its children -->
<xsl:template match="ref">
  <xsl:apply-templates/>
</xsl:template>


Also, just FYI, your source tree has a structure like this:


root
 |
 |__element 'myelement'
      |
      |__text '\n     '
      |
      |__element 'p'
      |    |
      |    |__text 'This is '
      |    |
      |    |__element 'ref'
      |    |    |
      |    |    |__text 'the'
      |    |
      |    |__text ' text node'
      |
      |__text '\n'

...that is, "This is the text node" is not very accurate; the phrase is split
among 3 different text nodes, although if you use the templates above, you'll
end up with one :)


Mike

--
  Mike J. Brown   |  http://skew.org/~mike/resume/
  Denver, CO, USA |  http://skew.org/xml/

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



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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.