|
Subject:
|
Pushing particular Nodes inside an element
|
|
Posted By:
|
ROCXY
|
Post Date:
|
1/3/2006 12:21:24 AM
|
Hi All,
I have an XML file like below:
<artfront> <metadata>…….</metadata> <journaldata>……</journaldata> <author>……………</author> </artfront>
<artbody>
<section id="s1"> <heading1 level="1">section-1</heading1>
<para>This is ---------para---------text.</para> <table1>------------Table Text---------------</table> <!--- First Time--> <procplace>------- proceeding date/place------</procplace> <proctopic> ------proceeding topic--------------</proctopic> <procplace>------- proceeding date/place------</procplace> <proctopic> ------proceeding topic--------------</proctopic> <procplace>------- proceeding date/place------</procplace> <proctopic> ------proceeding topic--------------</proctopic>
<footnotetext>This is ----------foot---------text</footnotetext>
<subsect id="s1-1"> <heading2 level="2">heading2 level 2</heading2> <para>This is ---------para---------text.</para>
<!--- second time--> <procplace>------- proceeding date/place------</procplace> <proctopic> ------proceeding topic--------------</proctopic> <procplace>------- proceeding date/place------</procplace> <proctopic> ------proceeding topic--------------</proctopic> <figure1>--------------Figure info ---------------</figure> </subsect>
<subsect id="s1-2"> <heading2 level="2">heading2 level 2</heading2> <para>This is ---------para---------text.</para> </subsect>
<subsect id="s1-3"> <heading2 level="2">heading2 level 2</heading2> <para>This is ---------para---------text.</para> <subsect id="s1-3-1"> <heading3 level="3">heading3 level 3</heading2> <list>This is ---------list---------text.</list>
<!--- third time--> <procplace>------- proceeding date/place------</procplace> <proctopic> ------proceeding topic--------------</proctopic> <procplace>------- proceeding date/place------</procplace> <proctopic> ------proceeding topic--------------</proctopic>
<equation> This is ---------equation---------text.</equation> </subsect> </subsect> </section>
Following is XSL used specified by forum: ---------------------------------------- <xsl:template match="*"> <xsl:copy> <xsl:for-each-group select="child::node()" group-adjacent="self::procplace or self::proctopic"> <xsl:choose> <xsl:when test="current-grouping-key()"> <meeting> <xsl:apply-templates select="current-group()"/> </meeting> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="current-group()"/> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:copy> </xsl:template>
Observed Output - WRONG ----------------------- <meetings><procplace>------- proceeding date/place------</procdate></meetings> <meetings><proctopic> ------proceeding topic------</proctopic></meetings> <meetings><procplace>------- proceeding date/place------</procdate></meetings> <meetings><proctopic> ------proceeding topic------</proctopic></meetings> <meetings><procplace>------- proceeding date/place------</procdate></meetings> <meetings><proctopic> ------proceeding topic------</proctopic></meetings>
Required Output - Correct ------------------------- <meetings> <procplace>------- proceeding date/place------</procdate> <proctopic> ------proceeding topic------</proctopic> <procplace>------- proceeding date/place ------</procdate> <proctopic> ------proceeding topic------</proctopic> </meetings>
The problem is it a set of node (<procplace> and <proctopic>) will be couple which will come like.
\artbody\body1\section\procplace following proctopic \artbody\procplace following proctopic \artbody\section\procplace following proctopic
so it will note be a child for any element
I was trying this for more than a week.

I would greatly appreciate any help provided.
Thanks & Regards, - ROCXY
|
|
Reply By:
|
mhkay
|
Reply Date:
|
1/3/2006 4:10:58 AM
|
I think the problem is caused by the intervening whitespace text nodes. You can probably solve it by adding <xsl:strip-space elements="*"/>.
Michael Kay http://www.saxonica.com/ Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference
|
|
Reply By:
|
ROCXY
|
Reply Date:
|
1/3/2006 11:21:52 AM
|
Dear Mr.Michael,
Thanks for your kind reply.
Thanks & Regards, - ROCXY
|