2012-05-29 65 views
0

我得到這個通過web服務調用返回的html字符串。如何在delphi 2009中顯示Html格式的響應?

我無法顯示HTML可能是因爲奇格式(注意開括號「<頭>」如何顯示爲「& LT;頭& GT;」代替)

這是我截HTML格式的響應。

我想要做的是在窗體上顯示這個html頁面。但是,當我將字符串寫入文件時,我甚至無法打開它。

任何幫助感激,

由於

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="http://tempuri.org/">&lt;html&gt;&lt;head&gt;&lt;title&gt;...... 
...html......&lt;/div&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</string> 
+0

對於寫入文件,我通常只使用一個普通的字符串列表('TStringList')並將每個字符串添加爲一個新行 - 然後使用其SaveToFile和LoadFromFile函數保存/加載任何平面文本文件。至於加載和顯示內容,我不確定你的意思是格式化的,但對於實際頁面,最快捷的方法是使用一個使用Internet Explorer核心的TWebBrowser。格式化代碼的語法是另一回事。 –

+0

@LeonardoHerrera,所有我試圖做的是將上述字符串寫入html文件,但我沒有任何成功查看該文件。我只是想出了爲什麼,因爲字符串需要解碼HtmlDecode(字符串)。現在它的工作..感謝 – Trevor

+1

特雷弗,請編輯您的問題,提供有關如何獲得HTML的信息,以及你迄今爲止嘗試過的不起作用的信息。另一種方法(因爲你似乎已經得到了答案)將要麼發佈你的解決方案作爲你自己的問題的答案(你甚至可以在短暫的延遲後將其標記爲接受的答案)或刪除問題。請不要將它張貼在這裏,一旦得到解決方案就放棄它;這不是它設計工作的方式。如果您打算使用SO作爲資源,請合作正確使用它。謝謝。 :-) –

回答

0

感謝您的輸入。這對我來說很有用。

uses 
HTTPApp 

var 
HtmlXmlText : String; 

HtmlText := HTMLDecode(HtmlXmlText); 

我用HTMLDecode清理奇怪的字符爲標準格式。

1

& LT;和& gt;是XML and HTML character entities。出於某種原因(可能返回格式不正確的html),此Web服務(?)將標記括號<>替換爲& lt;和& gt ;.如果您假設返回<字符串> </string>元素& lt;和& gt;僅用作標記括號,您可以用適當的括號替換實體。如果你不能假設你需要解析字符串元素文本來獲得有效的html。

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;