我有以下XML
<run>
<font style="bold"/>Some Wording
</run>
我想把它转换成
<p>
<b>Some Wording</b>
</p>
我正在尝试这个模板
<xsl:template match="run/font[@style='bold']">
<p>
<b>
<xsl:value-of select="."/>
</b>
</p>
</xsl:template>
但这给出了输出
<p>
<b/>Some Wording
</p>
如何使用XSLT包装<b>
标记中的措辞?
如果您的要求是在<b>
元素中包装任何紧跟在<font style="bold"/>
前面的文本节点,则可以使用实现
<xsl:template match="text()[preceding-sibling::*[1][self::font][@style='bold']]">
<b><xsl:value-of select="."/></b>
</xsl:template>
如果这不是你的需求(从一个例子推断需求是出了名的容易出错(,那么你需要更清楚地解释它。