Это мой XML-файл ...
<w:document>
<w:body>
<w:p>
<w:r>
<w:t>
Paragraph1
</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
Это мой второй XML-файл ...
<w:document>
<w:body>
<w:p>
<w:r>
<w:pict>
<v:shape>
<v:textbox>
<w:txbxContent>
<w:p>
<w:r>
<w:t>
Paragraph2
</w:t>
</w:r>
</w:p>
</w:txbxContent>
<v:textbox>
</v:shape>
</w:pict>
</w:r>
</w:p>
</w:body>
</w:document>
Здесь я написал один файл xslt и вызываю свой шаблон всякий раз, когда нахожу //w:body/w:p/w:r/w:t.
for example,
<xsl:apply-templates select="//w:body/w:p[w:r[w:t]]">
</xsl:apply-templates>
мой собственный шаблон
<xsl:template match="w:p">
Do something here
</xsl:template>
мой xslt корректно работает с моим первым XML-документом. Но он не работает со вторым, а также с некоторым сценарием, подобным этому. Итак, как я могу добиться обоих этих сценариев, изменив этот запрос здесь ...
<xsl:apply-templates select="?????"> <!-- how to find the case that also matching my second xml file -->
</xsl:apply-templates>
Пожалуйста, помогите мне выйти из этого вопроса ...