XElement.Parse处理指令

时间:2015-01-09 16:04:40

标签: c# xml xelement

我正在尝试将一些html解析为xml。 html从MS Word粘贴,并以字符串形式保存到数据库中:

<font face="Times New Roman" size="3"></font><p style="margin: 0in 0in 10pt 0.5in; text-indent: -0.25in; mso-list: l0 level1 lfo1;"><font size="3"><font face="Calibri"><?xml:namespace prefix =" "o"" /><o:p><span style=";">Some text</span></o:p></font></font></p><font face="Times New Roman" size="3"></font>

我正在尝试使用解码字符串并创建有效的XML XElement:

  String html = String.Format("<html>{0}</html>", 
                              HttpUtility.HtmlDecode(
                                  comment.Value
                                  .Replace("<br>", "<br/>")
                                  .Replace((char)0x3A, 'x')));

  XElement parsedComment = XElement.Parse(html);

给我以下字符串:

<html>
    <font face="Times New Roman" size="3">  </font>
    <p style="marginx 0in 0in 10pt 0.5in; text-indentx -0.25in; mso-listx l0 level1 lfo1;">
        <font size="3">
            <font face="Calibri">
            <?xmlxnamespace prefix =" "o"" />           
                <oxp>
                    <span style=";">Some text</span>
                </oxp>
            </font>
        </font>
    </p>
    <font face="Times New Roman" size="3">  </font>
</html>

正如您所见,MS Word创建了一个非静音处理指令:

<?xmlxnamespace prefix =" "o"" />

应该是

<?xmlxnamespace prefix =" "o"" ?>

我收到了这个错误:

"Unexpected end of file while parsing PI has occurred. Line 1, position 338."

如何从输入字符串中轻松删除处理或我的方法错误?

0 个答案:

没有答案