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

Re: replacing selective p tags with tags with attribut

Subject: Re: replacing selective p tags with tags with attributes
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Thu, 18 Apr 2013 20:30:22 -0700
Re:  replacing selective p tags with tags with attribut
strip513,

Did you know that cross-posting is evil?

See this answer to your identical question asked at SO:

http://stackoverflow.com/a/16096705/36305



On Thu, Apr 18, 2013 at 8:02 PM, G. Ken Holman
<gkholman@xxxxxxxxxxxxxxxxxxxx> wrote:
> At 2013-04-18 22:38 -0400, strip513 . wrote:
>>
>>         Hey guys,
>>
>>         I have an xml file with many p tags --
>>
>>         INPUT --
>> ...
>>
>>         I want all the p tags which are above inline img class to be
>> replaced by <p channel="y.com"> and it will look like
>> ...
>>
>>         I dont want to replace any other normal p tags.So, in this
>> particular example find and replace will happen at two places.
>>
>>         I used this code,but it is not working.Please advise.Thanks.
>
>
> I advise you to look at XSLT differently, so I'm glad you posted.  You are
> treating XSLT imperatively, in a manner like Java or C or Python, and not
> taking advantage of what XSLT can do for you.  And you are trying to create
> angle brackets in your strings, which is entirely inappropriate for XSLT.
>
> Consider the working solution below that does what you ask.  It is written
> declaratively and it looks at the input as a tree of nodes, not as a string
> of angle brackets.  I declare in my stylesheet what I want the output to
> look like for a given input element.  I've characterized what is special
> about <p> element nodes that need to be written out differently, otherwise,
> all element nodes are simply copied to the result tree as they are found in
> the input tree.
>
> You need to approach solutions in a manner appropriate to the processing
> model (declarative) and data model (nodes) of XSLT.  Using purely imperative
> approaches and putting angle strings will not help you and will hinder your
> use of the language.
>
> XSLT is built for XML and with XML, it is not a language that simply
> supports XML from function calls.
>
> I hope you find this helpful.
>
> . . . . . . . Ken
>
>
> T:\ftemp>type arkle.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <test>
>
>   <p>
>               <inline-img class="full">
>                 <web-main-photo>
>                   <photo src="http://yahoo.com/test.jpg"/>
>                 </web-main-photo>
>                 <data>
>                   <br/>
>                   <caption>
>                     <p> (Nick Wass/Associated Press)</p>
>                   </caption>
>                 </data>
>               </inline-img>
>             </p>
>             <p>this is content </p>
>             <p>After missing the past three games with an injured left
> leg, Martin Erat will return to the <a href="/blog/">Capitals</a>'
> lineup Saturday night at Verizon Center against the Tampa Bay
> Lightning.</p>
>             <p>Erat, 31, suffered the injury on April 6 at Florida
> when Panthers defenseman Erik Gudbranson delivered a late hit from
> behind that sent the veteran winger awkwardly into the boards. He
> avoided significant harm, though, and after five consecutive days of
> skating Erat said he's prepared to get back to game action.</p>
>         <p>
>               <inline-img class="full">
>                 <web-main-photo>
>                   <photo src="http://yahoo.com/test.jpg"/>
>                 </web-main-photo>
>                 <data>
>                   <br/>
>                   <caption>
>                     <p> (Nick Wass/Associated Press)</p>
>                   </caption>
>                 </data>
>               </inline-img>
>             </p>
>             <p>"Feeling good. Feels better every day, I'm pretty much
> ready to go," Erat said, adding that while he would have much rather
> been playing games with his new team the time to take part in practice
> and watch the system work from above should help him make a smooth
> transition.</p>
> </test>
>
> T:\ftemp>call xslt arkle.xml arkle.xsl
> <?xml version="1.0" encoding="utf-8"?><test>
>   <p channel="y">
>
>               <inline-img class="full">
>                 <web-main-photo>
>                   <photo src="http://yahoo.com/test.jpg"/>
>                 </web-main-photo>
>                 <data>
>                   <br/>
>                   <caption>
>                     <p> (Nick Wass/Associated Press)</p>
>                   </caption>
>                 </data>
>               </inline-img>
>             </p>
>             <p>this is content </p>
>             <p>After missing the past three games with an injured left
> leg, Martin Erat will return to the <a href="/blog/">Capitals</a>'
> lineup Saturday night at Verizon Center against the Tampa Bay
> Lightning.</p>
>             <p>Erat, 31, suffered the injury on April 6 at Florida
> when Panthers defenseman Erik Gudbranson delivered a late hit from
> behind that sent the veteran winger awkwardly into the boards. He
> avoided significant harm, though, and after five consecutive days of
> skating Erat said he's prepared to get back to game action.</p>
>         <p channel="y">
>
>               <inline-img class="full">
>                 <web-main-photo>
>                   <photo src="http://yahoo.com/test.jpg"/>
>                 </web-main-photo>
>                 <data>
>                   <br/>
>                   <caption>
>                     <p> (Nick Wass/Associated Press)</p>
>                   </caption>
>                 </data>
>               </inline-img>
>             </p>
>             <p>"Feeling good. Feels better every day, I'm pretty much
> ready to go," Erat said, adding that while he would have much rather
> been playing games with his new team the time to take part in practice
> and watch the system work from above should help him make a smooth
> transition.</p>
> </test>
> T:\ftemp>type arkle.xsl
> <?xml version="1.0" encoding="US-ASCII"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>                 version="1.0">
>
> <xsl:template match="p[inline-img]">
>   <p channel="y">
>     <xsl:apply-templates/>
>   </p>
> </xsl:template>
>
> <xsl:template match="@*|node()"><!--identity for all other nodes-->
>   <xsl:copy>
>     <xsl:apply-templates select="@*|node()"/>
>   </xsl:copy>
> </xsl:template>
>
> </xsl:stylesheet>
> T:\ftemp>rem Done!
>
>
> --
> Contact us for world-wide XML consulting and instructor-led training |
> Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm |
> Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/s/ |
> G. Ken Holman                   mailto:gkholman@xxxxxxxxxxxxxxxxxxxx |
> Google+ profile: https://plus.google.com/116832879756988317389/about |
> Legal business disclaimers:    http://www.CraneSoftwrights.com/legal |
>



-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they
write all patents, too? :)
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.

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.