I am trying to select w:p nodes based on w:pStyle attribute. At first
I was getting no traction because I didn't have all the MS Word
namespace prefixes assigned. Now that I have that issue addressed, I
need help with predicates. The p:Style node is a child of the w:p
node which I want to select and copy to the result tree. Here is an
example of the XML:
...
<w:p>
<w:pPr>
<w:pStyle w:val="A-Head"/>
</w:pPr>
<w:r>
<w:t>Nouns</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="NL"/>
</w:pPr>
<w:r>
<w:t>blah blah blah</w:t>
</w:r>
</w:p>
...
Here is one of the templates I have tried. With this one, I get the
original source :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
xmlns:o="urn:schemas-microsoft.com:office:office"
xmlns:aml="http://schemas.microsoft.com/aml2001/core">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="w:p/w:pPr/w:pStyle[(_at_)w:val = 'NL']">
<xsl:copy-of select="ancestor::w:p/node()"/>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
I know that "w:p/w:pPr/w:pStyle[(_at_)w:val = 'NL']" works to select the
particular attribute. For example, when I run the template below, I
get repeated <w:pStyle w:val = "NL" > nodes in the result tree with
nothing else.
<xsl:template match="w:p"/>
<xsl:apply templates select="w:pPr/w:pStyle[(_at_)w:val = 'NL']"/>
</xsl:template>
What am I doing wrong?
Terry
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--