HTML 内部 XML 的 EDOMParseError

EDOMParseError with HTML inner XML

我有一个 XML 字符串存储在一个变量中:

<RESULT>
    <ROW>
        <MESSAGE>
            <!DOCTYPE HTML>
            <html>
                <body>
                    hello html inner xml on delphi
                </body>
            </html>
        </MESSAGE>
    </ROW>
</RESULT>

我使用以下代码将字符串解析为 TXmlDocument 对象:

var
    xmldoc : TXmlDocument;
begin
    xml := LoadXmlData(resultXml);
end;

但是,它会产生错误:

EDOMParseError line 1 : <RESULT><ROW><MESSAGE><doctype html>

如何解析此 Xml 以便我可以检索 MESSAGE 节点的内容?

假设星号只是为了突出显示,您有两个选择。

如果要将嵌套的 HTML 解析为 XML,则需要删除 HTML DOCTYPE 声明。

如果不需要解析嵌套的 HTML,您可以将其包装在 CDATA 部分中,如下所示:

<RESULT>
   <ROW>
       <MESSAGE><![CDATA[
           <!DOCTYPE HTML>
           <html><body>hello html inner xml on delphi</body></html>
       ]]></MESSAGE>
   </ROW>
</RESULT>