У меня похожая проблема, например Как анализировать вложенные теги с использованием XSLT в последовательности? , но решение не соответствует
my souce:
<BodyText Status="ARC">Lorem ipsum dolor <Emphasis>THIS IS BOLD</Emphasis> amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. </BodyText>
результат:
<p Status="ARC">Lorem ipsum dolor <b>THIS IS BOLD</b> amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. </p>
но я просто хочу, чтобы один p не p Status = "ARC", потому что состояние не соответствует моей targetSchema.
Вот мой код
<!-- ********* BodyText ************************************************************************************************** -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- ********* BodyText ************************************************************************************************** -->
<xsl:template match="BodyText">
<p>
<xsl:apply-templates select="@*|node()"/>
</p>
</xsl:template>
<!-- ********* Emphasis ***** bold, italic, underline, Default bold **************************************************** -->
<xsl:template match="Emphasis[@type='bold']">
<b>
<xsl:apply-templates select="node()"/>
</b>
</xsl:template>
<xsl:template match="Emphasis[@type='italic']">
<i>
<xsl:apply-templates select="node()"/>
</i>
</xsl:template>
<xsl:template match="Emphasis[@type='underline']">
<u>
<xsl:apply-templates select="node()"/>
</u>
</xsl:template>
<xsl:template match="Emphasis">
<b>
<xsl:apply-templates select="node()"/>
</b>
</xsl:template>