C# 添加带有html标记的字符串以打开xml word

C# 添加带有html标记的字符串以打开xml word,c#,html,openxml,openxml-sdk,C#,Html,Openxml,Openxml Sdk,我正在尝试将html格式的文本添加到打开的xml文本中。 如何应用文本中已有的格式 我将案文适用如下: TextElement.Text = formattedString; <p>test<br/>test2<ul><li>item1</li><li>item2<li2></p> 其中FormattedString包含以下内容: TextElement.Text = formattedStrin

我正在尝试将html格式的文本添加到打开的xml文本中。 如何应用文本中已有的格式

我将案文适用如下:

TextElement.Text = formattedString;
<p>test<br/>test2<ul><li>item1</li><li>item2<li2></p>
其中FormattedString包含以下内容:

TextElement.Text = formattedString;
<p>test<br/>test2<ul><li>item1</li><li>item2<li2></p>
测试
test2
  • 项目1
  • 项目2

目前,它只是简单地将文本与标记一起插入word文档中。 如何告诉OpenXMLSDK以正确的格式添加字符串

您需要创建一个包含HTML的,然后需要向文档中添加一个,并为其提供
AlternativeFormatImportPart
id

下面的代码从头开始创建一个包含HTML的文件。请注意,HTML片段似乎不受支持,因此我在HTML片段中添加了
标记

using (var document = WordprocessingDocument.Create(filename, WordprocessingDocumentType.Document))
{
    document.AddMainDocumentPart();
    document.MainDocumentPart.Document = new Document();
    document.MainDocumentPart.Document.Body = new Body();

    //create a memory stream with the HTML required
    MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("<html><p>test<br/>test2<ul><li>item1</li><li>item2<li2></p><html>"));

    //Create an alternative format import part on the MainDocumentPart
    AlternativeFormatImportPart altformatImportPart = document.MainDocumentPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Html);

    //Add the HTML data into the alternative format import part
    altformatImportPart.FeedData(ms);

    //create a new altChunk and link it to the id of the AlternativeFormatImportPart
    AltChunk altChunk = new AltChunk();
    altChunk.Id = document.MainDocumentPart.GetIdOfPart(altformatImportPart);

    // add the altChunk to the document
    document.MainDocumentPart.Document.Body.Append(altChunk);

    document.Save();
}
使用(var document=WordprocessingDocument.Create(filename,WordprocessingDocumentType.document))
{
document.AddMainDocumentPart();
document.MainDocumentPart.document=新文档();
document.MainDocumentPart.document.Body=新正文();
//使用所需的HTML创建内存流
MemoryStream ms=新的MemoryStream(Encoding.UTF8.GetBytes(“test
test2
  • item1
  • item2

    ”); //在MainDocumentPart上创建替代格式的导入部件 AlternativeFormatImportPart AlternativeFormatImportPart=document.MainDocumentPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Html); //将HTML数据添加到替代格式导入部分 altformatImportPart.FeedData(毫秒); //创建一个新的altChunk并将其链接到AlternativeFormatImportPart的id AltChunk AltChunk=新的AltChunk(); altChunk.Id=document.MainDocumentPart.GetIdOfPart(altformatImportPart); //将altChunk添加到文档中 document.maincumentpart.document.Body.Append(altChunk); document.Save(); }
这将产生以下输出:


猜测:XML对其进行编码(转换五个保留的XML字符(>),是否有方法将文本类型指定为“html”?请查看“TextElement”的属性以找到答案。请查看下面的链接是否有用: