C#:OpenXMLPowerTools2007预发行版从html生成的docx

C#:OpenXMLPowerTools2007预发行版从html生成的docx,c#,ms-word,openxml,openxml-powertools,C#,Ms Word,Openxml,Openxml Powertools,我正在编写代码,通过使用OpenXMLPowerTools将Docx文件的内容转换为HTML,现在我想将其转换回另一个Docx文件。将内容获取为HTML的步骤工作正常,但当我从该HTML生成docx文件时,该文件无法打开并抛出此错误 此文件是在word 2007的预发布版本中创建的,无法删除 无法在此版本中打开 从测试docx生成的HTML是 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta

我正在编写代码,通过使用OpenXMLPowerTools将Docx文件的内容转换为HTML,现在我想将其转换回另一个Docx文件。将内容获取为HTML的步骤工作正常,但当我从该HTML生成docx文件时,该文件无法打开并抛出此错误

此文件是在word 2007的预发布版本中创建的,无法删除 无法在此版本中打开

从测试docx生成的HTML是

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta
      charset="UTF-8" />
    <title>My Page Title</title>
    <meta
      name="Generator"
      content="PowerTools for Open XML" />
    <style>span { white-space: pre-wrap; }
p.pt-Normal {
    line-height: 107.9%;
    margin-bottom: 8pt;
    text-align: justify;
    font-family: ;
    font-size: 11pt;
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
}
span.pt-DefaultParagraphFont {
    font-family: ;
    font-size: 11pt;
    font-style: normal;
    font-weight: normal;
    margin: 0;
    padding: 0;
}
span.pt-DefaultParagraphFont-000000 {
    font-family: Calibri;
    font-size: 11pt;
    font-style: normal;
    font-weight: normal;
    margin: 0;
    padding: 0;
}
</style>
  </head>
  <body>
    <div>
      <p
        dir="rtl"
        class="pt-Normal">&#x200f;<span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;با سلام خدمت &#x200f;</span><span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;&lt;&lt;&#x200f;</span><span
          class="pt-DefaultParagraphFont-000000">&#x200e;PERSONS.lname&#x200e;</span><span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;&gt;&gt;&#x200f;</span><span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f; &#x200f;</span><span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;&lt;&lt;&#x200f;</span><span
          class="pt-DefaultParagraphFont-000000">&#x200e;PERSONS.fname&#x200e;</span><span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;&gt;&gt;&#x200f;</span></p>
      <p
        dir="rtl"
        class="pt-Normal">&#x200f;<span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;مدیر محترم &#x200f;</span><span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;&lt;&lt;&#x200f;</span><span
          class="pt-DefaultParagraphFont-000000">&#x200e;OFFICE.name&#x200e;</span><span
          lang="fa-IR"
          class="pt-DefaultParagraphFont">&#x200f;&gt;&gt;&#x200f;</span></p>
    </div>
  </body>
</html>

答案很简单。不能将HTML内容插入到
MainDocumentPart
中,因为它应该包含有效的Open XML
w:document
元素,例如以下简化元素:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:body>
    <w:p>
      <w:r>
        <w:t>Hello, world!</w:t>
      </w:r>
    </w:p>
  </w:body>
</w:document>

你好,世界!
错误消息可能有点误导。在这种情况下,HTML完全无效


根据在从原始Word文档创建HTML(使用Open XML PowerTools)后是否更改了HTML,您必须将其转换回有效的Open XML标记(如果更改了它)或者简单地使用原始Word文档中的Open XML标记。

您是否有进一步的疑问,或者下面的答案是否有助于解决您的问题?是的…我怎么不能直接获取docx的XML。。。现在,我按照以下步骤将文件从.docx格式重命名为zip格式,然后我可以在word文件夹中找到docx的xml文件。。。。。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:body>
    <w:p>
      <w:r>
        <w:t>Hello, world!</w:t>
      </w:r>
    </w:p>
  </w:body>
</w:document>