
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="example.xsl"?>
<Article>
<Title>My Article</Title>
<Authors>
<Author>Mr. Foo</Author>
<Author>Mr. Bar</Author>
</Authors>
<Body>This is my article text.</Body>
</Article>
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
Article - <xsl:value-of select="/Article/Title"/>
Authors: <xsl:apply-templates select="/Article/Authors/Author"/>
</xsl:template>
<xsl:template match="Author">
- <xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
DATA(lo_xml) = cl_ixml=>create( ).
DATA(lo_source_document) = lo_xml->create_document( ).
DATA(lo_result_document) = lo_xml->create_document( ).
DATA(lo_stream_factory) = lo_xml->create_stream_factory( ).
DATA(lo_xml_istream) = lo_stream_factory->create_istream_string( xml_string ).
DATA(lo_xslt_istream) = lo_stream_factory->create_istream_string( xslt ).
DATA(lo_parser) = lo_xml->create_parser( document = lo_source_document
istream = lo_xml_istream
stream_factory = lo_stream_factory ).
lo_parser->parse( ).
DATA(lo_xslt_processor) = NEW cl_xslt_processor( ).
TRY.
lo_xslt_processor->set_source_node( lo_source_document ).
lo_xslt_processor->set_result_document( lo_result_document ).
lo_xslt_processor->set_source_stream( EXPORTING stream = lo_xslt_istream
CHANGING p = lv_progname_string ).
lo_xslt_processor->run( space ).
CATCH cx_xslt_exception.
ENDTRY.
DATA(lo_cl_xml) = NEW cl_xml_document( ).
lo_cl_xml->create_with_dom( lo_result_document ).
lo_cl_xml->render_2_string(
EXPORTING
pretty_print = 'X'
IMPORTING
stream = DATA(lv_string)
).
DATA: lv_progname_string TYPE string VALUE abap_true.
DATA(xml_string) = |<?xml version="1.0"?>| &&
|<?xml-stylesheet type="text/xsl" href="example.xsl"?>| &&
|<Article>| &&
| <Title>My Article</Title>| &&
| <Authors>| &&
| <Author>Mr. Foo</Author>| &&
| <Author>Mr. Bar</Author>| &&
| </Authors>| &&
| <Body>This is my article text.</Body>| &&
|</Article>|.
DATA(xslt) = |<?xml version="1.0"?>| &&
|<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">| &&
| <xsl:output method="text"/>| &&
| <xsl:template match="/">| &&
| Article - <xsl:value-of select="/Article/Title"/>| &&
| Authors: <xsl:apply-templates select="/Article/Authors/Author"/>| &&
| </xsl:template>| &&
| <xsl:template match="Author">| &&
| - <xsl:value-of select="." />| &&
| </xsl:template>| &&
|</xsl:stylesheet>|.
DATA(lo_xml) = cl_ixml=>create( ).
DATA(lo_source_document) = lo_xml->create_document( ).
DATA(lo_result_document) = lo_xml->create_document( ).
DATA(lo_stream_factory) = lo_xml->create_stream_factory( ).
DATA(lo_xml_istream) = lo_stream_factory->create_istream_string( xml_string ).
DATA(lo_xslt_istream) = lo_stream_factory->create_istream_string( xslt ).
DATA(lo_parser) = lo_xml->create_parser( document = lo_source_document
istream = lo_xml_istream
stream_factory = lo_stream_factory ).
lo_parser->parse( ).
DATA(lo_xslt_processor) = NEW cl_xslt_processor( ).
TRY.
lo_xslt_processor->set_source_node( lo_source_document ).
lo_xslt_processor->set_result_document( lo_result_document ).
lo_xslt_processor->set_source_stream( EXPORTING stream = lo_xslt_istream
CHANGING p = lv_progname_string ).
lo_xslt_processor->run( space ).
CATCH cx_xslt_exception.
ENDTRY.
DATA(lo_cl_xml) = NEW cl_xml_document( ).
lo_cl_xml->create_with_dom( lo_result_document ).
lo_cl_xml->display( ).
lo_cl_xml->render_2_string(
EXPORTING
pretty_print = 'X'
IMPORTING
stream = DATA(lv_string)
).
WRITE lv_string.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
3 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |