 |
 |
 |
Hey drkm
Thanks for helping me with this. I have a couple of additional problems
though, one is with the NumberedText the other is when a w:tbl element is
at the same level as the w:p element but still needs to be a child of the
Heading.
When there is a numbered list, all the items in the list should be wrapped
in an encompassing <List> tag like this
<List>
<ListItem>Item 1</ListItem>
<ListItem>Item 2</ListItem>
<ListItem>Item 3</ListItem>
</List>
I am currently getting
<List>
<ListItem>Item 1</ListItem>
</List>
<List>
<ListItem>Item 2</ListItem>
</List>
<List>
<ListItem>Item 3</ListItem>
</List>
I got this working with a test xml file using the following
<xsl:template match="/">
<Body>
<xsl:apply-templates />
</Body>
</xsl:template>
<xsl:template match w:body>
<xsl:for-each-group select="w:p" group starting
with="w:p[w:pPr/w:listPr/wx:t[@wx:val='1.']]" --- Groups by the list
number when list num is 1
<List>
<xsl:apply-templates select="current-group()" mode="List" />
</List>
</xsl:for-each-group>
</xsl:template>
<xsl:template match="w:p" mode="List">
<ListItem>
<xsl:value-of select="w:r/w:t"/>
</ListItem>
</xsl:template>
This however wouldn't fit into the solution you provided. Do you know of a
way that I could incorporate something like the above sample into your
solution as your solution works really well and I don't want to change it
unless absolutely necessary.
The second problem is this:
As you know the w:p tag is applied to all text entries in a Word document
and when a table is created the w:tbl tag is applied at the same level. In
a previous solution to my issue you had the w:tbl tag inserted with an
"or" into the <xsl:for-each-group> statement which worked, but it doesn't
appear to work in the current solution, although I may be getting the
syntax wrong. The bold bits represent the changes I made ..
Any more help would be greatly appreciated.
<xsl:function name="my:p-style" as="xs:string">
<xsl:param name="p" as="element()"/>
<xsl:sequence select="$p/w:pPr/w:pStyle/@w:val"/>
</xsl:function>
<xsl:template match="ns0:Body">
<Body>
<xsl:call-template name="my:grouping">
<xsl:with-param name="p" select="w:p"/>
<xsl:with-param name="level" select="1"/>
</xsl:call-template>
</Body>
</xsl:template>
<xsl:template match="w:p[my:p-style(.) eq 'NumberedText']">
<List>
<ListItem>
<xsl:value-of select="w:r/w:t"/>
</ListItem>
</List>
</xsl:template>
<xsl:template match="w:tbl">
<Table>
TABLE STRUCTURE IN HERE ...
</Table>
</xsl:template>
<xsl:template name="my:grouping">
<xsl:param name="p" as="element(w:p)+"/>
<xsl:param name="level" as="xs:integer"/>
<xsl:for-each-group select="$p or w:tbl"
group-starting-with="w:p[my:p-style(.) eq concat('Heading',$level)]">
<xsl:choose>
<xsl:when test="my:p-style(.) eq concat('Heading', $level)">
<Section>
<xsl:call-template name="my:grouping">
<xsl:with-param name="p" select="current-group()"/>
<xsl:with-param name="level" select="$level + 1"/>
</xsl:call-template>
</Section>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
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
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
|
 | 

|  |
These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.
|  |
| |
 |
 |
 |