Это мой XML-документ (небольшой фрагмент).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p> <!-- Current Node -->
<w:r>
<w:t>
This is the
</w:t>
</w:r>
<w:r>
<w:pict>
<w:p>
<w:r>
<w:t>
I dont need this
</w:t>
</w:r>
</w:p>
</w:pict>
</w:r>
<w:r>
<w:pict>
<w:p>
<w:r>
<w:t>
I dont need this too
</w:t>
</w:r>
</w:p>
</w:pict>
</w:r>
<w:r>
<w:t>
text that i need to retrieve...
</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
Здесь я хочу получить значение <w:r><w:t>
, и в нем <w:r>
не должно быть дочернего элемента <w:pict>
. Итак, согласно моему приведенному выше XML-документу, я хочу сгенерировать следующий вывод:
<paragraph>This is the text that i need to retrieve...</paragraph>
и это мой фрагмент XSLT (скажите, пожалуйста, какие изменения требует этот XSLT для получения вышеуказанного формата):
<xsl:choose>
<xsl:when test="self::w:p[//w:r/w:t[not(ancestor::w:pict)]]">
<Paragraph>
<xsl:apply-templates select="./w:t[not(ancestor::w:pict)]" />
</Paragraph>
</xsl:when>
</xsl:choose>
<xsl:template match="w:t">
<xsl:value-of select="." />
</xsl:template>
но это не работает ...
Пожалуйста, помогите мне выйти из этого вопроса.