我收到通过网络服务电话返回的这个html字符串。
我在显示html时遇到了麻烦,可能是因为奇怪的格式(请注意开头括号“< head>”如何显示为'& lt; head& gt;'而不是
这是我截断的html格式化响应。
我要做的是在表单上显示此html页面。但是当我将字符串写入文件时,我甚至无法打开它。
非常感谢任何帮助,
由于
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/"><html><head><title>......
...html......</div></div></body></html></string>
答案 0 :(得分:1)
&安培; LT;和&amp; gt;是XML and HTML character entities。由于某种原因(可能返回格式错误的html),此Web服务(?)返回标记括号&lt;&gt;替换为&amp; lt;和&amp; gt;。如果您假设在返回的&lt; string&gt;&lt; / string&gt;中元素&amp; lt;和&amp; gt;仅用作标记括号,您可以使用适当的括号替换实体。如果你不能假设你需要解析字符串元素文本来获得有效的html。
答案 1 :(得分:1)
如果您只是编写代码来处理此字符串(并且您无法访问检索它的代码),那么最正确的方法是使用XML解析器。
uses XmlIntf;
procedure blah;
var
doc: IXMLDocument;
HtmlText: String;
begin
doc := CreateXMLDocument;
doc.LoadFromFile(...);
HtmlText := doc.documentElement.InnerText;
// Your text is already decoded here
DoWhatever(HtmlText);
end;
答案 2 :(得分:0)
感谢您的投入。这对我有用。
uses
HTTPApp
var
HtmlXmlText : String;
HtmlText := HTMLDecode(HtmlXmlText);
我使用HTMLDecode将奇数字符清理为标准格式。