【问题标题】:How to display a Html formatted response in delphi 2009?如何在 delphi 2009 中显示 Html 格式的响应?
【发布时间】:2012-05-31 22:56:00
【问题描述】:

我正在通过 Web 服务调用返回此 html 字符串。

我无法显示 html 可能是因为格式奇怪(请注意左括号“

”如何显示为 '&lt ; head &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>

【问题讨论】:

  • 对于写入文件,我通常只使用一个纯字符串列表 (TStringList) 并将每个字符串添加为一个新行 - 然后使用它的 SaveToFileLoadFromFile 函数来保存/加载任何平面文本文件。至于加载和显示内容,我不确定你的意思是格式化,但对于实际页面,快速的方法是使用使用 Internet Explorer 核心的TWebBrowser。格式化代码的语法是另一回事。
  • @LeonardoHerrera,我所做的只是将上述字符串写入一个 html 文件,但我没有成功查看该文件。我刚刚弄清楚为什么因为字符串需要解码HtmlDecode(字符串)。现在它的工作.. 谢谢
  • Trevor,请编辑您的问题以提供有关您如何获得 HTML 的信息,以及到目前为止您尝试过哪些不起作用的信息。另一种选择(因为您似乎已经得到了答案)是将您的解决方案发布为您自己问题的答案(您甚至可以在短暂延迟后将其标记为已接受的答案)或删除该问题。请不要只是在此处发布并在找到解决方案后放弃它;这不是 SO 设计的工作方式。如果您打算将 SO 用作资源,请配合正确使用它。谢谢。 :-)
  • @KenWhite - 这个字符串是通过网络服务调用返回给我的。我可以编辑我的问题并添加答案或只是删除,因为它可能对任何人都不是很有用。我将编辑我的帖子以反映这一点,希望它现在更有意义。我明天有时间发表我的答案。
  • 您正在获取 XML,但您是直接通过 Indy,还是通过 THTTPRIO,或通过其他方法获得它? (这就是为什么我问您如何获取字符串,顺便说一句,以及将其分配给您的字符串变量的代码。)

标签: web-services delphi xhtml delphi-2009


【解决方案1】:

XML and HTML character entities。由于某种原因(可能返回格式错误的 html),此 Web 服务(?)返回标记括号 替换为 <和>。如果您假设在返回的 元素中 <和>仅用作标签括号,您可以用适当的括号替换实体。如果你不能假设你需要解析字符串元素文本来获取有效的html。

【讨论】:

    【解决方案2】:

    如果您只是编写代码来处理此字符串(并且您无权访问检索它的代码),那么最正确的方法是使用 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;
    

    【讨论】:

      【解决方案3】:

      感谢您的意见。这对我有用。

       uses
       HTTPApp
      
       var 
       HtmlXmlText : String;
      
       HtmlText := HTMLDecode(HtmlXmlText);
      

      我使用 HTMLDecode 将奇数字符清理为标准格式。

      【讨论】:

        猜你喜欢
        • 2019-01-01
        • 2023-03-15
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 2019-02-08
        • 2010-09-21
        相关资源
        最近更新 更多