Re: [xsl] Problem with Positional Grouping from MSXML

Subject: Re: [xsl] Problem with Positional Grouping from MSXML
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Thu, 1 Feb 2007 21:30:28 +0530
I have described few techniques for Positional Grouping at my web site:

http://gandhimukul.tripod.com/xslt/grouping.html#positionalgrouping.
(if this link doesn't work, please go to
http://gandhimukul.tripod.com/xslt/grouping.html, item no 33)

I hope this helps you to solve the problem..

On 2/1/07, Andy Carr1 <CARRA@xxxxxxxxxx> wrote:

Hi


I am running into difficulties while trying to perform Positional Grouping
on a MSXML file.
What I need to do is find the Headings in a MSXML file and transform them
into <Section> tags. Everything beneath the Heading should become a child
of <Section> until the next Heading is found, at which point the process
starts over.

A sample of the xml I am trying to transform is:

<ns0:Body>
  <w:p>
     <w:pPr>
        <w:pStyle w:val="BodyHeading"/>
     </w:pPr>
     <w:r>
        <w:t>Heading Text</w:t>
     </w:r>
  </w:p>
  <w:p>
     <w:pPr>
        <w:pStyle w:val="NumberedText"/>
     </w:pPr>
     <w:r>
        <w:t>Some list text</w:t>
     </w:r>
  </w:p>
  <w:p>
     <w:pPr>
        <w:pStyle w:val="Text"/>
     </w:pPr>
     <w:r>
        <w:t>Some text</w:t>
     </w:r>
  </w:p>
  <w:p>
     <w:pPr>
        <w:pStyle w:val="BodyHeading"/>
     </w:pPr>
     <w:r>
        <w:t>Another Heading Text</w:t>
     </w:r>
  </w:p>
  <w:p>
     <w:pPr>
        <w:pStyle w:val="Text"/>
     </w:pPr>
     <w:r>
        <w:t>Some more text</w:t>
     </w:r>
  </w:p>
  <w:p>
     <w:pPr>
        <w:pStyle w:val="NumberedText"/>
     </w:pPr>
     <w:r>
        <w:t>Some more list text</w:t>
     </w:r>
  </w:p>
</ns0:Body>

Sorry it's a bit long. As you can see MSXML treats a Heading as <w:p> like
any other paragraph. The output desired should look like this:

<Body>
  <Section>
     <Title>Heading Text</Title> (from the first Heading)
     <List>
        <ListItem>Some list text</List>
     </List>
     <Para>Some text</Para>
  </Section>
  <Section>
     <Title>Another Heading Text</Title> (from the second Heading)
     <Para>Some more text</Para>
     <List>
        <ListItem>Some more list text</List>
     </List>
  </Section>
</Body>

I have no control over the number of paragraphs that the Body might contain
and I think I need to use the w:pStyle/@w:val attribute to identify which
paragraphs need to become Section headings but I can't get the right logic.

I am using XSL 2.0 with XML Spy 2007- I would appreciate some help as my
head is about to explode :-/

Regards
Andy

Andy Carr
IT Specialist
Tel: Internal - 298037 External - 01252 558037
Mail Point  M1C IBM Application Services
Meudon House, Meudon Avenue, Farnborough, GU14 7NB
(Notes) Andy Carr1/UK/IBM@IBMGB
(Internet)CARRA@xxxxxxxxxx


--
Regards,
Mukul Gandhi

Current Thread