我有一个存储在变量中的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节点的内容?
答案 0 :(得分:2)
假设星号只是用于突出显示的目的,你有两种选择。
如果要将嵌套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>