System.XML.XmlException:''是一个意外的令牌.预期的标记是';'

Ste*_*ton 7 c# xml exception linq-to-xml

我有一个HTML表单,我试图使用XDocument.Load加载,我收到以下错误:

' ' is an unexpected token. The expected token is ';'. Line 1257, position 66.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
Run Code Online (Sandbox Code Playgroud)

代码只是调用以下内容:

XDocument xmlDoc = XDocument.Load(pageData.Stream);
Run Code Online (Sandbox Code Playgroud)

pageData是来自另一个系统的自定义对象,即吐出数据流.我已经将xml导出回一个字符串,看起来很好.

当我在HTML上检查该行时,它只是元素的结束标记.xml异常给出的行/位置有多可靠?我只是将表单的来源转储到notepad ++中进行验证,我看不出它会成为一个问题.

编辑:以下是错误前后的前几行.我已经标记了错误行.

                                        </p>
                        </td>
                    </tr>
                </table>

            </td>
        </tr>  <----Error Line
        <tr>
            <td>
                <div id="BusinessJustificationForm">
                    <table id="BusinessJustificationTable">
                        <tr>
                            <td class="seperator" colspan="7">
Run Code Online (Sandbox Code Playgroud)

Nic*_*ola 13

我曾经证明这个问题&在一个URL中是一个&符号,其中一个分号;没有跟随它.

例如:

<a href="http://www.something.com?id=123&name=456"></a>
Run Code Online (Sandbox Code Playgroud)

幸运的是,URL不需要在我的HTML代码中包含&符号,所以我完全删除了它.我猜URL编码会有所帮助,&amp;如果需要则替换它.


Ste*_*ton 9

此问题是由名称包含空格的"名称"属性引起的.一旦我完成了整个过程并解决了这个问题,我就能够将HTML加载为XML文档.


fcu*_*sta 7

HTML与XML不同.XML比HTML有更严格的规则.可能你的HTML不是格式良好的XML.除非您可以确保HTML符合XHTML,否则无法使用XML解析器解析HTML.请改用HTML Agility Pack.