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>
我有一个 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>