如何将格式化的HTML行显示为弹出窗口?

4
我有一行包含HTML标签的文本。示例:
    html_string = '<!DOCTYPE html><html><body> <h1> My First Heading</h1> <p> My first paragraph.</p> </body> </html> '. 

我想将html_string的值以格式化的HTML文本形式返回,如下所示:
    <!DOCTYPE html>
    <html>
      <body>
        <h1>My First Heading</h1>
        <p>My first paragraph.</p>
      </body>
    </html>

最好是在弹出窗口中实现。有没有任何想法?最好是一个函数模块之类的东西。我已经搜索了一段时间,但没有找到符合我的要求的东西。

它是否要通过SAP GUI for Windows进行呈现? - Sandra Rossi
是的!如果我通过调试器查找并选择“HTML-Browser”,它看起来正是我所需要的,但我找不到任何类似我上面描述的东西。 - D.Ge.
2个回答

3
我刚刚找到了我需要的东西。这可能会帮助未来的程序员: https://help.sap.com/doc/abapdocu_750_index_htm/7.50/de-DE/abenstring_function_escape_abexa.htm
REPORT  demo_escape_html.

CLASS demo DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS main.
ENDCLASS.

CLASS demo IMPLEMENTATION.
  METHOD main.
    DATA: body     TYPE string,
          esc_body TYPE string.

    body = `<table border> `
        && `<tr><td>11</td><td>12</td></tr> `
        && `<tr><td>21</td><td>22</td></tr> `
        && `</table>`.

    esc_body = escape( val    = body
                       format = cl_abap_format=>e_html_text ).

    cl_demo_output=>new(
      )->begin_section( 'Original text'
      )->write_text( body

      )->next_section( 'Original text formatted as HTML'
      )->write_html( body

      )->next_section( 'Escaped text'
      )->write_text( esc_body

      )->next_section( 'Escaped text formatted as HTML'
      )->write_html( esc_body

      )->display( ).
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  demo=>main( ).

1
cl_demo_*类仅用于测试目的,您不应该在生产中使用这个类。相反,请使用cl_abap_browser - Sandra Rossi

1
如果HTML是XHTML(兼容XML),那么您可以像处理其他XML一样显示它,并且集成的Windows浏览器将自动缩进XML级别:
DATA l_xml TYPE string.
cl_abap_browser=>show_xml( xml_string = l_xml title = 'text' ).

如果HTML不是XHTML,就没有SAP程序解释“begin-end”标签(如<br><li>等)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接