[英]How do I convert Richtext images from a standard WPF RichTextBox into HTML using XSLT?
How do I convert Richtext images from a standard WPF RichTextBox into HTML using XSLT?如何使用 XSLT 将 Richtext 图像从标准 WPF RichTextBox 转换为 HTML?
Based on this answer , I have made the following XSLT file.基于此答案,我制作了以下 XSLT 文件。 So far, it converts Bold, Italic, Underlined, font family, font size, and font color.
到目前为止,它转换了粗体、斜体、下划线、字体系列、字体大小和字体颜色。 Now I still need it to convert images in the Richtext to HTML.
现在我仍然需要它将 Richtext 中的图像转换为 HTML。
Image alignment does not have to be considered.不必考虑图像对齐。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl x">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="x:Section[not(parent::x:Section)]">
<div>
<xsl:apply-templates select="node()"/>
</div>
</xsl:template>
<xsl:template match="x:Section">
<xsl:apply-templates select="node()"/>
</xsl:template>
<xsl:template match="x:Paragraph">
<p>
<xsl:apply-templates select="node()"/>
</p>
</xsl:template>
<xsl:template match="x:Run">
<xsl:variable name="style">
<xsl:if test="@FontStyle='Italic'">
<xsl:text>font-style:italic;</xsl:text>
</xsl:if>
<xsl:if test="@FontWeight='Bold'">
<xsl:text>font-weight:bold;</xsl:text>
</xsl:if>
<xsl:if test="contains(@TextDecorations, 'Underline')">
<xsl:text>text-decoration:underline;</xsl:text>
</xsl:if>
<xsl:if test="@FontSize != ''">
<xsl:text>font-size:</xsl:text>
<xsl:value-of select="@FontSize" />
<xsl:text>pt;</xsl:text>
</xsl:if>
<xsl:if test="@FontFamily != ''">
<xsl:text>font-family:</xsl:text>
<xsl:value-of select="@FontFamily" />
<xsl:text>;</xsl:text>
</xsl:if>
<xsl:if test="@Foreground != ''">
<xsl:text>color:#</xsl:text>
<xsl:value-of select="substring(@Foreground, 4)"/>
<xsl:text>;</xsl:text>
</xsl:if>
</xsl:variable>
<span>
<xsl:if test="normalize-space($style) != ''">
<xsl:attribute name="style">
<xsl:value-of select="normalize-space($style)"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="text()"/>
</span>
</xsl:template>
</xsl:stylesheet>
You could add this template - include it above the final </xsl:stylesheet>您可以添加此模板 - 将其包含在最终 </xsl:stylesheet> 上方
<xsl:template match="x:Image">
<img src="@Source" />
</xsl:template>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.