我有一个存储在变量中的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>