diff --git a/src/zcl_excel_common.clas.abap b/src/zcl_excel_common.clas.abap index 440c725..939c7cd 100644 --- a/src/zcl_excel_common.clas.abap +++ b/src/zcl_excel_common.clas.abap @@ -67,6 +67,11 @@ CLASS zcl_excel_common DEFINITION EXPORTING !e_column TYPE zexcel_cell_column_alpha !e_row TYPE zexcel_cell_row . + CLASS-METHODS clone_ixml_with_namespaces + IMPORTING + element TYPE REF TO if_ixml_element + RETURNING + VALUE(result) TYPE REF TO if_ixml_element. CLASS-METHODS date_to_excel_string IMPORTING !ip_value TYPE d @@ -625,6 +630,32 @@ CLASS zcl_excel_common IMPLEMENTATION. ENDMETHOD. + METHOD clone_ixml_with_namespaces. + + DATA: iterator TYPE REF TO if_ixml_node_iterator, + node TYPE REF TO if_ixml_node, + xmlns TYPE ihttpnvp, + xmlns_table TYPE TABLE OF ihttpnvp. + FIELD-SYMBOLS: + TYPE ihttpnvp. + + iterator = element->create_iterator( ). + result ?= element->clone( ). + node = iterator->get_next( ). + WHILE node IS BOUND. + xmlns-name = node->get_namespace_prefix( ). + xmlns-value = node->get_namespace_uri( ). + COLLECT xmlns INTO xmlns_table. + node = iterator->get_next( ). + ENDWHILE. + + LOOP AT xmlns_table ASSIGNING . + result->set_attribute_ns( prefix = 'xmlns' name = -name value = -value ). + ENDLOOP. + + ENDMETHOD. + + METHOD date_to_excel_string. DATA: lv_date_diff TYPE i. diff --git a/src/zcl_excel_drawing.clas.abap b/src/zcl_excel_drawing.clas.abap index 8253d12..ae5131e 100644 --- a/src/zcl_excel_drawing.clas.abap +++ b/src/zcl_excel_drawing.clas.abap @@ -28,6 +28,13 @@ CLASS zcl_excel_drawing DEFINITION CONSTANTS c_media_type_xml TYPE string VALUE 'xml'. "#EC NOTEXT CONSTANTS c_media_type_jpg TYPE string VALUE 'jpg'. "#EC NOTEXT CONSTANTS type_image_header_footer TYPE zexcel_drawing_type VALUE 'hd_ft'. "#EC NOTEXT + CONSTANTS: BEGIN OF namespace, + c TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/chart', + a TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/main', + r TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + mc TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006', + c14 TYPE string VALUE 'http://schemas.microsoft.com/office/drawing/2007/8/2/chart', + END OF namespace. METHODS constructor IMPORTING @@ -401,56 +408,56 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. ENDCASE. "Fill properties - node2 ?= node->find_from_name( name = 'date1904' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'date1904' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_1904val = ls_prop-val. - node2 ?= node->find_from_name( name = 'lang' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'lang' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_langval = ls_prop-val. - node2 ?= node->find_from_name( name = 'roundedCorners' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'roundedCorners' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_roundedcornersval = ls_prop-val. "style - node2 ?= node->find_from_name( name = 'style' namespace = 'c14' ). + node2 ?= node->find_from_name_ns( name = 'style' uri = namespace-c14 ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_c14styleval = ls_prop-val. - node2 ?= node->find_from_name( name = 'style' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'style' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_styleval = ls_prop-val. "---------------------------Read graph properties "ADDED CLEAR node2. - node2 ?= node->find_from_name( name = 'title' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'title' uri = namespace-c ). IF node2 IS BOUND AND node2 IS NOT INITIAL. - node3 ?= node2->find_from_name( name = 't' namespace = 'a' ). + node3 ?= node2->find_from_name_ns( name = 't' uri = namespace-a ). me->graph->title = node3->get_value( ). ENDIF. "END - node2 ?= node->find_from_name( name = 'autoTitleDeleted' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'autoTitleDeleted' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_autotitledeletedval = ls_prop-val. "plotArea CASE me->graph_type. WHEN c_graph_bars. - node2 ?= node->find_from_name( name = 'barDir' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'barDir' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_bardirval = ls_prop-val. - node2 ?= node->find_from_name( name = 'grouping' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'grouping' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_groupingval = ls_prop-val. - node2 ?= node->find_from_name( name = 'varyColors' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'varyColors' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_varycolorsval = ls_prop-val. "Load series - CALL METHOD node->get_elements_by_tag_name + CALL METHOD node->get_elements_by_tag_name_ns EXPORTING * depth = 0 name = 'ser' -* namespace = '' + uri = namespace-c RECEIVING rval = lo_collection. CALL METHOD lo_collection->create_iterator @@ -461,27 +468,27 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. node2 ?= lo_node->query_interface( ixml_iid_element ). ENDIF. WHILE lo_node IS BOUND. - node3 ?= node2->find_from_name( name = 'idx' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'idx' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_idx = ls_prop-val. - node3 ?= node2->find_from_name( name = 'order' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'order' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_order = ls_prop-val. - node3 ?= node2->find_from_name( name = 'invertIfNegative' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'invertIfNegative' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_invertifnegative = ls_prop-val. - node3 ?= node2->find_from_name( name = 'v' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'v' uri = namespace-c ). IF node3 IS BOUND. lv_sername = node3->get_value( ). ENDIF. - node3 ?= node2->find_from_name( name = 'strRef' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'strRef' uri = namespace-c ). IF node3 IS BOUND. - node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + node4 ?= node3->find_from_name_ns( name = 'f' uri = namespace-c ). lv_label = node4->get_value( ). ENDIF. - node3 ?= node2->find_from_name( name = 'numRef' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'numRef' uri = namespace-c ). IF node3 IS BOUND. - node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + node4 ?= node3->find_from_name_ns( name = 'f' uri = namespace-c ). lv_value = node4->get_value( ). ENDIF. CALL METHOD lo_barchart->create_serie @@ -498,35 +505,35 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. ENDIF. ENDWHILE. "note: numCache avoided - node2 ?= node->find_from_name( name = 'showLegendKey' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showLegendKey' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_showlegendkeyval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showVal' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showVal' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_showvalval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showCatName' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showCatName' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_showcatnameval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showSerName' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showSerName' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_showsernameval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showPercent' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showPercent' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_showpercentval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showBubbleSize' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showBubbleSize' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_showbubblesizeval = ls_prop-val. - node2 ?= node->find_from_name( name = 'gapWidth' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'gapWidth' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_gapwidthval = ls_prop-val. "Load axes - node2 ?= node->find_from_name( name = 'barChart' namespace = 'c' ). - CALL METHOD node2->get_elements_by_tag_name + node2 ?= node->find_from_name_ns( name = 'barChart' uri = namespace-c ). + CALL METHOD node2->get_elements_by_tag_name_ns EXPORTING * depth = 0 name = 'axId' -* namespace = '' + uri = namespace-c RECEIVING rval = lo_collection. CALL METHOD lo_collection->create_iterator @@ -540,45 +547,45 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lv_axid = ls_prop-val. IF sy-index EQ 1. "catAx - node2 ?= node->find_from_name( name = 'catAx' namespace = 'c' ). - node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'catAx' uri = namespace-c ). + node3 ?= node2->find_from_name_ns( name = 'orientation' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_orientation = ls_prop-val. - node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'delete' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_delete = ls_prop-val. - node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'axPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_axpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'numFmt' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'numFmt' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_formatcode = ls_prop-formatcode. lv_sourcelinked = ls_prop-sourcelinked. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_majortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_minortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'tickLblPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_ticklblpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crossAx' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crossax = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crosses' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crosses = ls_prop-val. - node3 ?= node2->find_from_name( name = 'auto' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'auto' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_auto = ls_prop-val. - node3 ?= node2->find_from_name( name = 'lblAlgn' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'lblAlgn' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_lblalgn = ls_prop-val. - node3 ?= node2->find_from_name( name = 'lblOffset' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'lblOffset' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_lbloffset = ls_prop-val. - node3 ?= node2->find_from_name( name = 'noMultiLvlLbl' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'noMultiLvlLbl' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_nomultilvllbl = ls_prop-val. CALL METHOD lo_barchart->create_ax @@ -600,36 +607,36 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. ip_lbloffset = lv_lbloffset ip_nomultilvllbl = lv_nomultilvllbl. ELSEIF sy-index EQ 2. "valAx - node2 ?= node->find_from_name( name = 'valAx' namespace = 'c' ). - node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'valAx' uri = namespace-c ). + node3 ?= node2->find_from_name_ns( name = 'orientation' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_orientation = ls_prop-val. - node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'delete' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_delete = ls_prop-val. - node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'axPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_axpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'numFmt' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'numFmt' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_formatcode = ls_prop-formatcode. lv_sourcelinked = ls_prop-sourcelinked. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_majortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_minortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'tickLblPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_ticklblpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crossAx' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crossax = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crosses' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crosses = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crossBetween' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crossBetween' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crossbetween = ls_prop-val. CALL METHOD lo_barchart->create_ax @@ -655,16 +662,16 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. ENDWHILE. WHEN c_graph_pie. - node2 ?= node->find_from_name( name = 'varyColors' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'varyColors' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_varycolorsval = ls_prop-val. "Load series - CALL METHOD node->get_elements_by_tag_name + CALL METHOD node->get_elements_by_tag_name_ns EXPORTING * depth = 0 name = 'ser' -* namespace = '' + uri = namespace-c RECEIVING rval = lo_collection. CALL METHOD lo_collection->create_iterator @@ -675,24 +682,24 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. node2 ?= lo_node->query_interface( ixml_iid_element ). ENDIF. WHILE lo_node IS BOUND. - node3 ?= node2->find_from_name( name = 'idx' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'idx' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_idx = ls_prop-val. - node3 ?= node2->find_from_name( name = 'order' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'order' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_order = ls_prop-val. - node3 ?= node2->find_from_name( name = 'v' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'v' uri = namespace-c ). IF node3 IS BOUND. lv_sername = node3->get_value( ). ENDIF. - node3 ?= node2->find_from_name( name = 'strRef' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'strRef' uri = namespace-c ). IF node3 IS BOUND. - node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + node4 ?= node3->find_from_name_ns( name = 'f' uri = namespace-c ). lv_label = node4->get_value( ). ENDIF. - node3 ?= node2->find_from_name( name = 'numRef' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'numRef' uri = namespace-c ). IF node3 IS BOUND. - node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + node4 ?= node3->find_from_name_ns( name = 'f' uri = namespace-c ). lv_value = node4->get_value( ). ENDIF. CALL METHOD lo_piechart->create_serie @@ -709,44 +716,44 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. ENDWHILE. "note: numCache avoided - node2 ?= node->find_from_name( name = 'showLegendKey' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showLegendKey' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_showlegendkeyval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showVal' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showVal' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_showvalval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showCatName' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showCatName' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_showcatnameval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showSerName' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showSerName' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_showsernameval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showPercent' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showPercent' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_showpercentval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showBubbleSize' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showBubbleSize' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_showbubblesizeval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showLeaderLines' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showLeaderLines' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_showleaderlinesval = ls_prop-val. - node2 ?= node->find_from_name( name = 'firstSliceAng' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'firstSliceAng' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_firstsliceangval = ls_prop-val. WHEN c_graph_line. - node2 ?= node->find_from_name( name = 'grouping' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'grouping' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_groupingval = ls_prop-val. - node2 ?= node->find_from_name( name = 'varyColors' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'varyColors' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_varycolorsval = ls_prop-val. "Load series - CALL METHOD node->get_elements_by_tag_name + CALL METHOD node->get_elements_by_tag_name_ns EXPORTING * depth = 0 name = 'ser' -* namespace = '' + uri = namespace-c RECEIVING rval = lo_collection. CALL METHOD lo_collection->create_iterator @@ -757,30 +764,30 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. node2 ?= lo_node->query_interface( ixml_iid_element ). ENDIF. WHILE lo_node IS BOUND. - node3 ?= node2->find_from_name( name = 'idx' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'idx' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_idx = ls_prop-val. - node3 ?= node2->find_from_name( name = 'order' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'order' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_order = ls_prop-val. - node3 ?= node2->find_from_name( name = 'symbol' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'symbol' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_symbol = ls_prop-val. - node3 ?= node2->find_from_name( name = 'smooth' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'smooth' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_smooth = ls_prop-val. - node3 ?= node2->find_from_name( name = 'v' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'v' uri = namespace-c ). IF node3 IS BOUND. lv_sername = node3->get_value( ). ENDIF. - node3 ?= node2->find_from_name( name = 'strRef' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'strRef' uri = namespace-c ). IF node3 IS BOUND. - node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + node4 ?= node3->find_from_name_ns( name = 'f' uri = namespace-c ). lv_label = node4->get_value( ). ENDIF. - node3 ?= node2->find_from_name( name = 'numRef' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'numRef' uri = namespace-c ). IF node3 IS BOUND. - node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + node4 ?= node3->find_from_name_ns( name = 'f' uri = namespace-c ). lv_value = node4->get_value( ). ENDIF. CALL METHOD lo_linechart->create_serie @@ -798,44 +805,44 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. ENDIF. ENDWHILE. "note: numCache avoided - node2 ?= node->find_from_name( name = 'showLegendKey' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showLegendKey' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_showlegendkeyval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showVal' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showVal' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_showvalval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showCatName' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showCatName' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_showcatnameval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showSerName' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showSerName' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_showsernameval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showPercent' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showPercent' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_showpercentval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showBubbleSize' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showBubbleSize' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_showbubblesizeval = ls_prop-val. - node ?= node->find_from_name( name = 'lineChart' namespace = 'c' ). - node2 ?= node->find_from_name( name = 'marker' namespace = 'c' depth = '1' ). + node ?= node->find_from_name_ns( name = 'lineChart' uri = namespace-c ). + node2 ?= node->find_from_name_ns( name = 'marker' uri = namespace-c depth = '1' ). IF node2 IS BOUND. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_markerval = ls_prop-val. ENDIF. - node2 ?= node->find_from_name( name = 'smooth' namespace = 'c' depth = '1' ). + node2 ?= node->find_from_name_ns( name = 'smooth' uri = namespace-c depth = '1' ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_smoothval = ls_prop-val. node ?= ip_chart->if_ixml_node~get_first_child( ). CHECK node IS NOT INITIAL. "Load axes - node2 ?= node->find_from_name( name = 'lineChart' namespace = 'c' ). - CALL METHOD node2->get_elements_by_tag_name + node2 ?= node->find_from_name_ns( name = 'lineChart' uri = namespace-c ). + CALL METHOD node2->get_elements_by_tag_name_ns EXPORTING * depth = 0 name = 'axId' -* namespace = '' + uri = namespace-c RECEIVING rval = lo_collection. CALL METHOD lo_collection->create_iterator @@ -849,41 +856,41 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lv_axid = ls_prop-val. IF sy-index EQ 1. "catAx - node2 ?= node->find_from_name( name = 'catAx' namespace = 'c' ). - node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'catAx' uri = namespace-c ). + node3 ?= node2->find_from_name_ns( name = 'orientation' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_orientation = ls_prop-val. - node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'delete' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_delete = ls_prop-val. - node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'axPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_axpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_majortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_minortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'tickLblPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_ticklblpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crossAx' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crossax = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crosses' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crosses = ls_prop-val. - node3 ?= node2->find_from_name( name = 'auto' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'auto' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_auto = ls_prop-val. - node3 ?= node2->find_from_name( name = 'lblAlgn' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'lblAlgn' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_lblalgn = ls_prop-val. - node3 ?= node2->find_from_name( name = 'lblOffset' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'lblOffset' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_lbloffset = ls_prop-val. - node3 ?= node2->find_from_name( name = 'noMultiLvlLbl' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'noMultiLvlLbl' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_nomultilvllbl = ls_prop-val. CALL METHOD lo_linechart->create_ax @@ -905,36 +912,36 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. ip_lbloffset = lv_lbloffset ip_nomultilvllbl = lv_nomultilvllbl. ELSEIF sy-index EQ 2. "valAx - node2 ?= node->find_from_name( name = 'valAx' namespace = 'c' ). - node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'valAx' uri = namespace-c ). + node3 ?= node2->find_from_name_ns( name = 'orientation' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_orientation = ls_prop-val. - node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'delete' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_delete = ls_prop-val. - node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'axPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_axpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'numFmt' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'numFmt' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_formatcode = ls_prop-formatcode. lv_sourcelinked = ls_prop-sourcelinked. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_majortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'majorTickMark' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_minortickmark = ls_prop-val. - node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'tickLblPos' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_ticklblpos = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crossAx' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crossax = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crosses' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crosses = ls_prop-val. - node3 ?= node2->find_from_name( name = 'crossBetween' namespace = 'c' ). + node3 ?= node2->find_from_name_ns( name = 'crossBetween' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). lv_crossbetween = ls_prop-val. CALL METHOD lo_linechart->create_ax @@ -964,60 +971,60 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. "legend CASE me->graph_type. WHEN c_graph_bars. - node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'legendPos' uri = namespace-c ). IF node2 IS BOUND. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_legendposval = ls_prop-val. ENDIF. - node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'overlay' uri = namespace-c ). IF node2 IS BOUND. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_barchart->ns_overlayval = ls_prop-val. ENDIF. WHEN c_graph_line. - node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'legendPos' uri = namespace-c ). IF node2 IS BOUND. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_legendposval = ls_prop-val. ENDIF. - node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'overlay' uri = namespace-c ). IF node2 IS BOUND. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_linechart->ns_overlayval = ls_prop-val. ENDIF. WHEN c_graph_pie. - node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'legendPos' uri = namespace-c ). IF node2 IS BOUND. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_legendposval = ls_prop-val. ENDIF. - node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'overlay' uri = namespace-c ). IF node2 IS BOUND. zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_overlayval = ls_prop-val. ENDIF. - node2 ?= node->find_from_name( name = 'pPr' namespace = 'a' ). + node2 ?= node->find_from_name_ns( name = 'pPr' uri = namespace-a ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_pprrtl = ls_prop-rtl. - node2 ?= node->find_from_name( name = 'endParaRPr' namespace = 'a' ). + node2 ?= node->find_from_name_ns( name = 'endParaRPr' uri = namespace-a ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). lo_piechart->ns_endpararprlang = ls_prop-lang. WHEN OTHERS. ENDCASE. - node2 ?= node->find_from_name( name = 'plotVisOnly' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'plotVisOnly' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_plotvisonlyval = ls_prop-val. - node2 ?= node->find_from_name( name = 'dispBlanksAs' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'dispBlanksAs' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_dispblanksasval = ls_prop-val. - node2 ?= node->find_from_name( name = 'showDLblsOverMax' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'showDLblsOverMax' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). me->graph->ns_showdlblsovermaxval = ls_prop-val. "--------------------- - node2 ?= node->find_from_name( name = 'pageMargins' namespace = 'c' ). + node2 ?= node->find_from_name_ns( name = 'pageMargins' uri = namespace-c ). zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_pagemargins ). me->graph->pagemargins = ls_pagemargins. diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap index 2cb5e15..9bba812 100644 --- a/src/zcl_excel_reader_2007.clas.abap +++ b/src/zcl_excel_reader_2007.clas.abap @@ -280,9 +280,34 @@ CLASS zcl_excel_reader_2007 DEFINITION !ip_excel TYPE REF TO zcl_excel RAISING zcx_excel . + + CONSTANTS: BEGIN OF namespace, + x14ac TYPE string VALUE 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac', + vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', "#EC NEEDED for future incorporation of XLSM-reader + c TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/chart', + a TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/main', + xdr TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing', + mc TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006', + r TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + chart TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', + drawing TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', + hyperlink TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink', + image TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', + office_document TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', + printer_settings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings', + shared_strings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + styles TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + theme TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', + worksheet TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + relationships TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + core_properties TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + main TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + END OF namespace. + PRIVATE SECTION. DATA zip TYPE REF TO lcl_zip_archive . + DATA: gid TYPE i. METHODS create_zip_archive IMPORTING @@ -501,7 +526,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * italic *--------------------------------------------------------------------* - lo_ixml_element = lo_ixml_dxf_child->find_from_name( 'i' ). + lo_ixml_element = lo_ixml_dxf_child->find_from_name_ns( name = 'i' uri = namespace-main ). IF lo_ixml_element IS BOUND. CLEAR lv_val. lv_val = lo_ixml_element->get_attribute_ns( 'val' ). @@ -514,7 +539,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * bold *--------------------------------------------------------------------* - lo_ixml_element = lo_ixml_dxf_child->find_from_name( 'b' ). + lo_ixml_element = lo_ixml_dxf_child->find_from_name_ns( name = 'b' uri = namespace-main ). IF lo_ixml_element IS BOUND. CLEAR lv_val. lv_val = lo_ixml_element->get_attribute_ns( 'val' ). @@ -527,7 +552,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * strikethrough *--------------------------------------------------------------------* - lo_ixml_element = lo_ixml_dxf_child->find_from_name( 'strike' ). + lo_ixml_element = lo_ixml_dxf_child->find_from_name_ns( name = 'strike' uri = namespace-main ). IF lo_ixml_element IS BOUND. CLEAR lv_val. lv_val = lo_ixml_element->get_attribute_ns( 'val' ). @@ -540,7 +565,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * color *--------------------------------------------------------------------* - lo_ixml_element = lo_ixml_dxf_child->find_from_name( 'color' ). + lo_ixml_element = lo_ixml_dxf_child->find_from_name_ns( name = 'color' uri = namespace-main ). IF lo_ixml_element IS BOUND. CLEAR lv_val. lv_val = lo_ixml_element->get_attribute_ns( 'rgb' ). @@ -549,9 +574,9 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDIF. WHEN 'fill'. - lo_ixml_element = lo_ixml_dxf_child->find_from_name( 'patternFill' ). + lo_ixml_element = lo_ixml_dxf_child->find_from_name_ns( name = 'patternFill' uri = namespace-main ). IF lo_ixml_element IS BOUND. - lo_ixml_element2 = lo_ixml_element->find_from_name( 'bgColor' ). + lo_ixml_element2 = lo_ixml_dxf_child->find_from_name_ns( name = 'bgColor' uri = namespace-main ). IF lo_ixml_element2 IS BOUND. CLEAR lv_val. lv_val = lo_ixml_element2->get_attribute_ns( 'rgb' ). @@ -669,18 +694,18 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. rel_drawing TYPE t_rel_drawing. - node ?= io_anchor_element->find_from_name( name = 'from' namespace = 'xdr' ). + node ?= io_anchor_element->find_from_name_ns( name = 'from' uri = namespace-xdr ). CHECK node IS NOT INITIAL. - node2 ?= node->find_from_name( name = 'col' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'col' uri = namespace-xdr ). ls_upper-col = node2->get_value( ). - node2 ?= node->find_from_name( name = 'row' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'row' uri = namespace-xdr ). ls_upper-row = node2->get_value( ). - node2 ?= node->find_from_name( name = 'colOff' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'colOff' uri = namespace-xdr ). ls_upper-col_offset = node2->get_value( ). - node2 ?= node->find_from_name( name = 'rowOff' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'rowOff' uri = namespace-xdr ). ls_upper-row_offset = node2->get_value( ). - node ?= io_anchor_element->find_from_name( name = 'ext' namespace = 'xdr' ). + node ?= io_anchor_element->find_from_name_ns( name = 'ext' uri = namespace-xdr ). IF node IS INITIAL. CLEAR ls_size. ELSE. @@ -697,32 +722,32 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDTRY. ENDIF. - node ?= io_anchor_element->find_from_name( name = 'to' namespace = 'xdr' ). + node ?= io_anchor_element->find_from_name_ns( name = 'to' uri = namespace-xdr ). IF node IS INITIAL. CLEAR ls_lower. ELSE. - node2 ?= node->find_from_name( name = 'col' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'col' uri = namespace-xdr ). ls_lower-col = node2->get_value( ). - node2 ?= node->find_from_name( name = 'row' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'row' uri = namespace-xdr ). ls_lower-row = node2->get_value( ). - node2 ?= node->find_from_name( name = 'colOff' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'colOff' uri = namespace-xdr ). ls_lower-col_offset = node2->get_value( ). - node2 ?= node->find_from_name( name = 'rowOff' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'rowOff' uri = namespace-xdr ). ls_lower-row_offset = node2->get_value( ). ENDIF. - node ?= io_anchor_element->find_from_name( name = 'pic' namespace = 'xdr' ). + node ?= io_anchor_element->find_from_name_ns( name = 'pic' uri = namespace-xdr ). IF node IS NOT INITIAL. - node2 ?= node->find_from_name( name = 'nvPicPr' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'nvPicPr' uri = namespace-xdr ). CHECK node2 IS NOT INITIAL. - node3 ?= node2->find_from_name( name = 'cNvPr' namespace = 'xdr' ). + node3 ?= node2->find_from_name_ns( name = 'cNvPr' uri = namespace-xdr ). CHECK node3 IS NOT INITIAL. me->fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = cnvpr ). lv_title = cnvpr-name. - node2 ?= node->find_from_name( name = 'blipFill' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'blipFill' uri = namespace-xdr ). CHECK node2 IS NOT INITIAL. - node3 ?= node2->find_from_name( name = 'blip' namespace = 'a' ). + node3 ?= node2->find_from_name_ns( name = 'blip' uri = namespace-a ). CHECK node3 IS NOT INITIAL. me->fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = blip ). lv_relation_id = blip-embed. @@ -730,20 +755,20 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. drawing_type = zcl_excel_drawing=>type_image. ENDIF. - node ?= io_anchor_element->find_from_name( name = 'graphicFrame' namespace = 'xdr' ). + node ?= io_anchor_element->find_from_name_ns( name = 'graphicFrame' uri = namespace-xdr ). IF node IS NOT INITIAL. - node2 ?= node->find_from_name( name = 'nvGraphicFramePr' namespace = 'xdr' ). + node2 ?= node->find_from_name_ns( name = 'nvGraphicFramePr' uri = namespace-xdr ). CHECK node2 IS NOT INITIAL. - node3 ?= node2->find_from_name( name = 'cNvPr' namespace = 'xdr' ). + node3 ?= node2->find_from_name_ns( name = 'cNvPr' uri = namespace-xdr ). CHECK node3 IS NOT INITIAL. me->fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = cnvpr ). lv_title = cnvpr-name. - node2 ?= node->find_from_name( name = 'graphic' namespace = 'a' ). + node2 ?= node->find_from_name_ns( name = 'graphic' uri = namespace-a ). CHECK node2 IS NOT INITIAL. - node3 ?= node2->find_from_name( name = 'graphicData' namespace = 'a' ). + node3 ?= node2->find_from_name_ns( name = 'graphicData' uri = namespace-a ). CHECK node3 IS NOT INITIAL. - node4 ?= node2->find_from_name( name = 'chart' namespace = 'c' ). + node4 ?= node2->find_from_name_ns( name = 'chart' uri = namespace-c ). CHECK node4 IS NOT INITIAL. me->fill_struct_from_attributes( EXPORTING ip_element = node4 CHANGING cp_structure = chart ). lv_relation_id = chart-id. @@ -774,15 +799,15 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. IF drawing_type = zcl_excel_drawing=>type_chart. * Begin fix for Issue #551 DATA: lo_tmp_node_2 TYPE REF TO if_ixml_element. - lo_tmp_node_2 ?= rel_drawing-content_xml->find_from_name( name = 'pieChart' namespace = 'c' ). + lo_tmp_node_2 ?= rel_drawing-content_xml->find_from_name_ns( name = 'pieChart' uri = namespace-c ). IF lo_tmp_node_2 IS NOT INITIAL. lo_drawing->graph_type = zcl_excel_drawing=>c_graph_pie. ELSE. - lo_tmp_node_2 ?= rel_drawing-content_xml->find_from_name( name = 'barChart' namespace = 'c' ). + lo_tmp_node_2 ?= rel_drawing-content_xml->find_from_name_ns( name = 'barChart' uri = namespace-c ). IF lo_tmp_node_2 IS NOT INITIAL. lo_drawing->graph_type = zcl_excel_drawing=>c_graph_bars. ELSE. - lo_tmp_node_2 ?= rel_drawing-content_xml->find_from_name( name = 'lineChart' namespace = 'c' ). + lo_tmp_node_2 ?= rel_drawing-content_xml->find_from_name_ns( name = 'lineChart' uri = namespace-c ). IF lo_tmp_node_2 IS NOT INITIAL. lo_drawing->graph_type = zcl_excel_drawing=>c_graph_line. ENDIF. @@ -813,14 +838,14 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * Look for dxfs-node *--------------------------------------------------------------------* lo_styles_xml = me->get_ixml_from_zip_archive( iv_path ). - lo_node_dxfs = lo_styles_xml->find_from_name( 'dxfs' ). + lo_node_dxfs = lo_styles_xml->find_from_name_ns( name = 'dxfs' uri = namespace-main ). CHECK lo_node_dxfs IS BOUND. *--------------------------------------------------------------------* * loop through all dxf-nodes and create style for each *--------------------------------------------------------------------* - lo_nodes_dxf ?= lo_node_dxfs->get_elements_by_tag_name( 'dxf' ). + lo_nodes_dxf ?= lo_node_dxfs->get_elements_by_tag_name_ns( name = 'dxf' uri = namespace-main ). lo_iterator_dxf = lo_nodes_dxf->create_iterator( ). lo_node_dxf ?= lo_iterator_dxf->get_next( ). WHILE lo_node_dxf IS BOUND. @@ -920,7 +945,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_shared_strings_xml = me->get_ixml_from_zip_archive( i_filename = ip_path is_normalizing = space ). " NO!!! normalizing - otherwise leading blanks will be omitted and that is not really desired for the stringtable - lo_node_si ?= lo_shared_strings_xml->find_from_name( 'si' ). + lo_node_si ?= lo_shared_strings_xml->find_from_name_ns( name = 'si' uri = namespace-main ). WHILE lo_node_si IS BOUND. APPEND INITIAL LINE TO me->shared_strings ASSIGNING . " Each -entry in the xml-file must lead to an entry in our stringtable @@ -944,13 +969,15 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. WHILE lo_node_si_child IS BOUND. " actually these children of are -tags CLEAR: ls_rtf. - lo_node_r_child_rpr ?= lo_node_si_child->find_from_name( 'rPr' ). " extracting rich text formating data + " extracting rich text formating data + lo_node_r_child_rpr ?= lo_node_si_child->find_from_name_ns( name = 'rPr' uri = namespace-main ). IF lo_node_r_child_rpr IS BOUND. lo_font = load_style_font( lo_node_r_child_rpr ). ls_rtf-font = lo_font->get_structure( ). ENDIF. ls_rtf-offset = lv_current_offset. - lo_node_r_child_t ?= lo_node_si_child->find_from_name( 't' ). " extract the ... part of each -tag + " extract the ... part of each -tag + lo_node_r_child_t ?= lo_node_si_child->find_from_name_ns( name = 't' uri = namespace-main ). IF lo_node_r_child_t IS BOUND. lv_node_value = lo_node_r_child_t->get_value( ). CONCATENATE -value lv_node_value INTO -value RESPECTING BLANKS. @@ -1086,9 +1113,9 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Now everything is prepared to build a "full" style *--------------------------------------------------------------------* - lo_node_cellxfs = lo_styles_xml->find_from_name( name = 'cellXfs' ). + lo_node_cellxfs = lo_styles_xml->find_from_name_ns( name = 'cellXfs' uri = namespace-main ). IF lo_node_cellxfs IS BOUND. - lo_nodes_xf = lo_node_cellxfs->get_elements_by_tag_name( name = 'xf' ). + lo_nodes_xf = lo_node_cellxfs->get_elements_by_tag_name_ns( name = 'xf' uri = namespace-main ). lo_iterator_cellxfs = lo_nodes_xf->create_iterator( ). lo_node_cellxfs_xf ?= lo_iterator_cellxfs->get_next( ). WHILE lo_node_cellxfs_xf IS BOUND. @@ -1144,7 +1171,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * §5 - Alignment *--------------------------------------------------------------------* - lo_node_cellxfs_xf_alignment ?= lo_node_cellxfs_xf->find_from_name( 'alignment' ). + lo_node_cellxfs_xf_alignment ?= lo_node_cellxfs_xf->find_from_name_ns( name = 'alignment' uri = namespace-main ). IF lo_node_cellxfs_xf_alignment IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node_cellxfs_xf_alignment @@ -1178,7 +1205,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * §6 - Protection *--------------------------------------------------------------------* - lo_node_cellxfs_xf_protection ?= lo_node_cellxfs_xf->find_from_name( 'protection' ). + lo_node_cellxfs_xf_protection ?= lo_node_cellxfs_xf->find_from_name_ns( name = 'protection' uri = namespace-main ). IF lo_node_cellxfs_xf_protection IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node_cellxfs_xf_protection @@ -1251,7 +1278,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * * *--------------------------------------------------------------------* - lo_node_border ?= ip_xml->find_from_name( 'border' ). + lo_node_border ?= ip_xml->find_from_name_ns( name = 'border' uri = namespace-main ). WHILE lo_node_border IS BOUND. CREATE OBJECT lo_cell_border. @@ -1304,7 +1331,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * §2 Read the border-formatting *--------------------------------------------------------------------* lo_border->border_style = lo_node_bordertype->get_attribute( 'style' ). - lo_node_bordercolor ?= lo_node_bordertype->find_from_name( 'color' ). + lo_node_bordercolor ?= lo_node_bordertype->find_from_name_ns( name = 'color' uri = namespace-main ). IF lo_node_bordercolor IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node_bordercolor @@ -1376,7 +1403,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * *--------------------------------------------------------------------* - lo_node_fill ?= ip_xml->find_from_name( 'fill' ). + lo_node_fill ?= ip_xml->find_from_name_ns( name = 'fill' uri = namespace-main ). WHILE lo_node_fill IS BOUND. CREATE OBJECT lo_fill. @@ -1392,7 +1419,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Patternfill - background color *--------------------------------------------------------------------* - lo_node_bgcolor = lo_node_fill_child->find_from_name( 'bgColor' ). + lo_node_bgcolor = lo_node_fill_child->find_from_name_ns( name = 'bgColor' uri = namespace-main ). IF lo_node_bgcolor IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node_bgcolor @@ -1413,7 +1440,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Patternfill - foreground color *--------------------------------------------------------------------* - lo_node_fgcolor = lo_node_fill->find_from_name( 'fgColor' ). + lo_node_fgcolor = lo_node_fill->find_from_name_ns( name = 'fgColor' uri = namespace-main ). IF lo_node_fgcolor IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node_fgcolor @@ -1443,11 +1470,11 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_fill->gradtype-bottom = lo_node_fill_child->get_attribute( 'bottom' ). lo_fill->gradtype-degree = lo_node_fill_child->get_attribute( 'degree' ). FREE lo_node_stop. - lo_node_stop ?= lo_node_fill_child->find_from_name( 'stop' ). + lo_node_stop ?= lo_node_fill_child->find_from_name_ns( name = 'stop' uri = namespace-main ). WHILE lo_node_stop IS BOUND. IF lo_fill->gradtype-position1 IS INITIAL. lo_fill->gradtype-position1 = lo_node_stop->get_attribute( 'position' ). - lo_node_bgcolor = lo_node_stop->find_from_name( 'color' ). + lo_node_bgcolor = lo_node_stop->find_from_name_ns( name = 'color' uri = namespace-main ). IF lo_node_bgcolor IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node_bgcolor @@ -1466,7 +1493,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDIF. ELSEIF lo_fill->gradtype-position2 IS INITIAL. lo_fill->gradtype-position2 = lo_node_stop->get_attribute( 'position' ). - lo_node_fgcolor = lo_node_stop->find_from_name( 'color' ). + lo_node_fgcolor = lo_node_stop->find_from_name_ns( name = 'color' uri = namespace-main ). IF lo_node_fgcolor IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node_fgcolor @@ -1519,21 +1546,21 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Bold *--------------------------------------------------------------------* - IF lo_node_font->find_from_name( 'b' ) IS BOUND. + IF lo_node_font->find_from_name_ns( name = 'b' uri = namespace-main ) IS BOUND. lo_font->bold = abap_true. ENDIF. *--------------------------------------------------------------------* * Italic *--------------------------------------------------------------------* - IF lo_node_font->find_from_name( 'i' ) IS BOUND. + IF lo_node_font->find_from_name_ns( name = 'i' uri = namespace-main ) IS BOUND. lo_font->italic = abap_true. ENDIF. *--------------------------------------------------------------------* * Underline *--------------------------------------------------------------------* - lo_node2 = lo_node_font->find_from_name( 'u' ). + lo_node2 = lo_node_font->find_from_name_ns( name = 'u' uri = namespace-main ). IF lo_node2 IS BOUND. lo_font->underline = abap_true. lo_font->underline_mode = lo_node2->get_attribute( 'val' ). @@ -1542,14 +1569,14 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * StrikeThrough *--------------------------------------------------------------------* - IF lo_node_font->find_from_name( 'strike' ) IS BOUND. + IF lo_node_font->find_from_name_ns( name = 'strike' uri = namespace-main ) IS BOUND. lo_font->strikethrough = abap_true. ENDIF. *--------------------------------------------------------------------* * Fontsize *--------------------------------------------------------------------* - lo_node2 = lo_node_font->find_from_name( 'sz' ). + lo_node2 = lo_node_font->find_from_name_ns( name = 'sz' uri = namespace-main ). IF lo_node2 IS BOUND. lo_font->size = lo_node2->get_attribute( 'val' ). ENDIF. @@ -1557,11 +1584,11 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Fontname *--------------------------------------------------------------------* - lo_node2 = lo_node_font->find_from_name( 'name' ). + lo_node2 = lo_node_font->find_from_name_ns( name = 'name' uri = namespace-main ). IF lo_node2 IS BOUND. lo_font->name = lo_node2->get_attribute( 'val' ). ELSE. - lo_node2 = lo_node_font->find_from_name( 'rFont' ). + lo_node2 = lo_node_font->find_from_name_ns( name = 'rFont' uri = namespace-main ). IF lo_node2 IS BOUND. lo_font->name = lo_node2->get_attribute( 'val' ). ENDIF. @@ -1570,7 +1597,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Fontfamily *--------------------------------------------------------------------* - lo_node2 = lo_node_font->find_from_name( 'family' ). + lo_node2 = lo_node_font->find_from_name_ns( name = 'family' uri = namespace-main ). IF lo_node2 IS BOUND. lo_font->family = lo_node2->get_attribute( 'val' ). ENDIF. @@ -1578,7 +1605,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Fontscheme *--------------------------------------------------------------------* - lo_node2 = lo_node_font->find_from_name( 'scheme' ). + lo_node2 = lo_node_font->find_from_name_ns( name = 'scheme' uri = namespace-main ). IF lo_node2 IS BOUND. lo_font->scheme = lo_node2->get_attribute( 'val' ). ELSE. @@ -1588,7 +1615,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Fontcolor *--------------------------------------------------------------------* - lo_node2 = lo_node_font->find_from_name( 'color' ). + lo_node2 = lo_node_font->find_from_name_ns( name = 'color' uri = namespace-main ). IF lo_node2 IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_node2 @@ -1636,7 +1663,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * * *--------------------------------------------------------------------* - lo_node_font ?= ip_xml->find_from_name( 'font' ). + lo_node_font ?= ip_xml->find_from_name_ns( name = 'font' uri = namespace-main ). WHILE lo_node_font IS BOUND. lo_font = load_style_font( lo_node_font ). @@ -1687,7 +1714,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * * *--------------------------------------------------------------------* - lo_node_numfmt ?= ip_xml->find_from_name( 'numFmt' ). + lo_node_numfmt ?= ip_xml->find_from_name_ns( name = 'numFmt' uri = namespace-main ). WHILE lo_node_numfmt IS BOUND. CLEAR ls_num_format. @@ -1881,7 +1908,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. INTO lv_full_filename. lo_rels_workbook = me->get_ixml_from_zip_archive( lv_full_filename ). - lo_node ?= lo_rels_workbook->find_from_name( 'Relationship' ). "#EC NOTEXT + lo_node ?= lo_rels_workbook->find_from_name_ns( name = 'Relationship' uri = namespace-relationships ). "#EC NOTEXT WHILE lo_node IS BOUND. me->fill_struct_from_attributes( EXPORTING ip_element = lo_node CHANGING cp_structure = ls_relationship ). @@ -1939,7 +1966,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * §3.1 Names and order of of worksheets *--------------------------------------------------------------------* - lo_node ?= lo_workbook->find_from_name( 'sheet' ). + lo_node ?= lo_workbook->find_from_name_ns( name = 'sheet' uri = namespace-main ). lv_workbook_index = 1. WHILE lo_node IS BOUND. @@ -2004,7 +2031,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * §3.2 Active worksheet *--------------------------------------------------------------------* lv_zexcel_active_worksheet = 1. " First sheet = active sheet if nothing else specified. - lo_node ?= lo_workbook->find_from_name( 'workbookView' ). + lo_node ?= lo_workbook->find_from_name_ns( name = 'workbookView' uri = namespace-main ). IF lo_node IS BOUND. lv_active_sheet_string = lo_node->get_attribute( 'activeTab' ). TRY. @@ -2027,7 +2054,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * - repeat rows/cols - sheetlocal ( special range ) * *--------------------------------------------------------------------* - lo_node ?= lo_workbook->find_from_name( 'definedName' ). + lo_node ?= lo_workbook->find_from_name_ns( name = 'definedName' uri = namespace-main ). WHILE lo_node IS BOUND. CLEAR lo_range. "ins issue #235 - repeat rows/cols @@ -2397,7 +2424,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. INTO lv_rels_worksheet_path. TRY. " +#222 _rels/xxx.rels might not be present. If not found there can be no drawings --> just ignore this section lo_ixml_rels_worksheet = me->get_ixml_from_zip_archive( lv_rels_worksheet_path ). - lo_ixml_node ?= lo_ixml_rels_worksheet->find_from_name( 'Relationship' ). + lo_ixml_node ?= lo_ixml_rels_worksheet->find_from_name_ns( name = 'Relationship' uri = namespace-relationships ). CATCH zcx_excel. "#EC NO_HANDLER +#222 " +#222 No errorhandling necessary - node will be unbound if error occurs ENDTRY. " +#222 @@ -2440,7 +2467,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_ixml_worksheet = me->get_ixml_from_zip_archive( ip_path ). - lo_ixml_tabcolor ?= lo_ixml_worksheet->find_from_name( 'tabColor' ). + lo_ixml_tabcolor ?= lo_ixml_worksheet->find_from_name_ns( name = 'tabColor' uri = namespace-main ). IF lo_ixml_tabcolor IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_tabcolor @@ -2453,7 +2480,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDIF. ENDIF. - lo_ixml_rows = lo_ixml_worksheet->get_elements_by_tag_name( name = 'row' ). + lo_ixml_rows = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'row' uri = namespace-main ). lo_ixml_iterator = lo_ixml_rows->create_iterator( ). lo_ixml_row_elem ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml_row_elem IS BOUND. @@ -2494,7 +2521,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDIF. ENDIF. - lo_ixml_cells = lo_ixml_row_elem->get_elements_by_tag_name( name = 'c' ). + lo_ixml_cells = lo_ixml_row_elem->get_elements_by_tag_name_ns( name = 'c' uri = namespace-main ). lo_ixml_iterator2 = lo_ixml_cells->create_iterator( ). lo_ixml_cell_elem ?= lo_ixml_iterator2->get_next( ). WHILE lo_ixml_cell_elem IS BOUND. @@ -2504,7 +2531,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_cell_elem CHANGING cp_structure = ls_cell ). - lo_ixml_value_elem = lo_ixml_cell_elem->find_from_name( name = 'v' ). + lo_ixml_value_elem = lo_ixml_cell_elem->find_from_name_ns( name = 'v' uri = namespace-main ). CASE ls_cell-t. WHEN 's'. " String values are stored as index in shared string table @@ -2517,7 +2544,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDIF. ENDIF. WHEN 'inlineStr'. " inlineStr values are kept in special node - lo_ixml_value_elem = lo_ixml_cell_elem->find_from_name( name = 'is' ). + lo_ixml_value_elem = lo_ixml_cell_elem->find_from_name_ns( name = 'is' uri = namespace-main ). IF lo_ixml_value_elem IS BOUND. lv_cell_value = lo_ixml_value_elem->get_value( ). ENDIF. @@ -2537,7 +2564,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDIF. ENDIF. - lo_ixml_formula_elem = lo_ixml_cell_elem->find_from_name( name = 'f' ). + lo_ixml_formula_elem = lo_ixml_cell_elem->find_from_name_ns( name = 'f' uri = namespace-main ). IF lo_ixml_formula_elem IS BOUND. lv_cell_formula = lo_ixml_formula_elem->get_value( ). *--------------------------------------------------------------------* @@ -2604,7 +2631,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * reason - libre office doesn't use SPAN in row - definitions *--------------------------------------------------------------------* IF lv_max_col = 0. - lo_ixml_imension_elem = lo_ixml_worksheet->find_from_name( name = 'dimension' ). + lo_ixml_imension_elem = lo_ixml_worksheet->find_from_name_ns( name = 'dimension' uri = namespace-main ). IF lo_ixml_imension_elem IS BOUND. lv_dimension_range = lo_ixml_imension_elem->get_attribute( 'ref' ). IF lv_dimension_range CS ':'. @@ -2620,7 +2647,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* "Get the customized column width - lo_ixml_columns = lo_ixml_worksheet->get_elements_by_tag_name( name = 'col' ). + lo_ixml_columns = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'col' uri = namespace-main ). lo_ixml_iterator = lo_ixml_columns->create_iterator( ). lo_ixml_column_elem ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml_column_elem IS BOUND. @@ -2704,7 +2731,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDWHILE. "Now we need to get information from the sheetView node - lo_ixml_sheetview_elem = lo_ixml_worksheet->find_from_name( name = 'sheetView' ). + lo_ixml_sheetview_elem = lo_ixml_worksheet->find_from_name_ns( name = 'sheetView' uri = namespace-main ). fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetview_elem CHANGING cp_structure = ls_sheetview ). IF ls_sheetview-showgridlines IS INITIAL OR ls_sheetview-showgridlines = lc_xml_attr_true OR @@ -2722,7 +2749,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. "Add merge cell information - lo_ixml_mergecells = lo_ixml_worksheet->get_elements_by_tag_name( name = 'mergeCell' ). + lo_ixml_mergecells = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'mergeCell' uri = namespace-main ). lo_ixml_iterator = lo_ixml_mergecells->create_iterator( ). lo_ixml_mergecell_elem ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml_mergecell_elem IS BOUND. @@ -2746,7 +2773,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDWHILE. " read sheet format properties - lo_ixml_sheetformatpr_elem = lo_ixml_worksheet->find_from_name( 'sheetFormatPr' ). + lo_ixml_sheetformatpr_elem = lo_ixml_worksheet->find_from_name_ns( name = 'sheetFormatPr' uri = namespace-main ). IF lo_ixml_sheetformatpr_elem IS NOT INITIAL. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetformatpr_elem CHANGING cp_structure = ls_sheetformatpr ). IF ls_sheetformatpr-customheight = '1'. @@ -2764,7 +2791,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. io_worksheet = io_worksheet ). * FitToPage - lo_ixml_sheetpr ?= lo_ixml_worksheet->find_from_name( 'pageSetUpPr' ). + lo_ixml_sheetpr ?= lo_ixml_worksheet->find_from_name_ns( name = 'pageSetUpPr' uri = namespace-main ). IF lo_ixml_sheetpr IS BOUND. lv_fit_to_page = lo_ixml_sheetpr->get_attribute_ns( 'fitToPage' ). @@ -2773,7 +2800,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDIF. ENDIF. " Read in page setup - lo_ixml_pagesetup_elem = lo_ixml_worksheet->find_from_name( 'pageSetup' ). + lo_ixml_pagesetup_elem = lo_ixml_worksheet->find_from_name_ns( name = 'pageSetup' uri = namespace-main ). IF lo_ixml_pagesetup_elem IS NOT INITIAL. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_pagesetup_elem @@ -2799,12 +2826,12 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. " Read header footer - lo_ixml_headerfooter_elem = lo_ixml_worksheet->find_from_name( 'headerFooter' ). + lo_ixml_headerfooter_elem = lo_ixml_worksheet->find_from_name_ns( name = 'headerFooter' uri = namespace-main ). IF lo_ixml_headerfooter_elem IS NOT INITIAL. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_headerfooter_elem CHANGING cp_structure = ls_headerfooter ). io_worksheet->sheet_setup->diff_oddeven_headerfooter = ls_headerfooter-differentoddeven. - lo_ixml_hf_value_elem = lo_ixml_headerfooter_elem->find_from_name( 'oddFooter' ). + lo_ixml_hf_value_elem = lo_ixml_headerfooter_elem->find_from_name_ns( name = 'oddFooter' uri = namespace-main ). IF lo_ixml_hf_value_elem IS NOT INITIAL. ls_odd_footer-left_value = lo_ixml_hf_value_elem->get_value( ). ENDIF. @@ -2821,7 +2848,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. " Start fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007 " Read pane - lo_ixml_pane_elem = lo_ixml_sheetview_elem->find_from_name( name = 'pane' ). + lo_ixml_pane_elem = lo_ixml_sheetview_elem->find_from_name_ns( name = 'pane' uri = namespace-main ). IF lo_ixml_pane_elem IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_pane_elem CHANGING cp_structure = ls_excel_pane ). " Issue #194 @@ -2847,7 +2874,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. " End fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007 " Start fix 276 Read data validations - lo_ixml_datavalidations = lo_ixml_worksheet->get_elements_by_tag_name( name = 'dataValidation' ). + lo_ixml_datavalidations = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'dataValidation' uri = namespace-main ). lo_ixml_iterator = lo_ixml_datavalidations->create_iterator( ). lo_ixml_datavalidation_elem ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml_datavalidation_elem IS BOUND. @@ -2856,12 +2883,12 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. CHANGING cp_structure = ls_datavalidation ). CLEAR lo_ixml_formula_elem. - lo_ixml_formula_elem = lo_ixml_datavalidation_elem->find_from_name( name = 'formula1' ). + lo_ixml_formula_elem = lo_ixml_datavalidation_elem->find_from_name_ns( name = 'formula1' uri = namespace-main ). IF lo_ixml_formula_elem IS BOUND. ls_datavalidation-formula1 = lo_ixml_formula_elem->get_value( ). ENDIF. CLEAR lo_ixml_formula_elem. - lo_ixml_formula_elem = lo_ixml_datavalidation_elem->find_from_name( name = 'formula2' ). + lo_ixml_formula_elem = lo_ixml_datavalidation_elem->find_from_name_ns( name = 'formula2' uri = namespace-main ). IF lo_ixml_formula_elem IS BOUND. ls_datavalidation-formula2 = lo_ixml_formula_elem->get_value( ). ENDIF. @@ -2976,23 +3003,23 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_autofilters = io_worksheet->excel->get_autofilters_reference( ). - lo_ixml_autofilter_elem = io_ixml_worksheet->find_from_name( 'autoFilter' ). + lo_ixml_autofilter_elem = io_ixml_worksheet->find_from_name_ns( name = 'autoFilter' uri = namespace-main ). IF lo_ixml_autofilter_elem IS BOUND. lv_ref = lo_ixml_autofilter_elem->get_attribute_ns( 'ref' ). - lo_ixml_filter_column_coll = lo_ixml_autofilter_elem->get_elements_by_tag_name( name = 'filterColumn' ). + lo_ixml_filter_column_coll = lo_ixml_autofilter_elem->get_elements_by_tag_name_ns( name = 'filterColumn' uri = namespace-main ). lo_ixml_filter_column_iter = lo_ixml_filter_column_coll->create_iterator( ). lo_ixml_filter_column ?= lo_ixml_filter_column_iter->get_next( ). WHILE lo_ixml_filter_column IS BOUND. lv_col_id = lo_ixml_filter_column->get_attribute_ns( 'colId' ). lv_column = lv_col_id + 1. - lo_ixml_filters_coll = lo_ixml_filter_column->get_elements_by_tag_name( name = 'filters' ). + lo_ixml_filters_coll = lo_ixml_filter_column->get_elements_by_tag_name_ns( name = 'filters' uri = namespace-main ). lo_ixml_filters_iter = lo_ixml_filters_coll->create_iterator( ). lo_ixml_filters ?= lo_ixml_filters_iter->get_next( ). WHILE lo_ixml_filters IS BOUND. - lo_ixml_filter_coll = lo_ixml_filter_column->get_elements_by_tag_name( name = 'filter' ). + lo_ixml_filter_coll = lo_ixml_filter_column->get_elements_by_tag_name_ns( name = 'filter' uri = namespace-main ). lo_ixml_filter_iter = lo_ixml_filter_coll->create_iterator( ). lo_ixml_filter ?= lo_ixml_filter_iter->get_next( ). WHILE lo_ixml_filter IS BOUND. @@ -3040,7 +3067,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lv_rule TYPE zexcel_condition_rule. - lo_ixml_cond_formats = io_ixml_worksheet->get_elements_by_tag_name( name = 'conditionalFormatting' ). + lo_ixml_cond_formats = io_ixml_worksheet->get_elements_by_tag_name_ns( name = 'conditionalFormatting' uri = namespace-main ). lo_ixml_iterator = lo_ixml_cond_formats->create_iterator( ). lo_ixml_cond_format ?= lo_ixml_iterator->get_next( ). @@ -3053,7 +3080,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * Get type of rule *--------------------------------------------------------------------* - lo_ixml_rules = lo_ixml_cond_format->get_elements_by_tag_name( name = 'cfRule' ). + lo_ixml_rules = lo_ixml_cond_format->get_elements_by_tag_name_ns( name = 'cfRule' uri = namespace-main ). lo_ixml_iterator2 = lo_ixml_rules->create_iterator( ). lo_ixml_rule ?= lo_ixml_iterator2->get_next( ). @@ -3204,7 +3231,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. io_style_cond->mode_cellis-cell_style = -guid. ENDIF. - lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'formula' ). + lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name_ns( name = 'formula' uri = namespace-main ). lo_ixml_iterator = lo_ixml_nodes->create_iterator( ). lo_ixml ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml IS BOUND. @@ -3233,7 +3260,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_ixml TYPE REF TO if_ixml_element. - lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'cfvo' ). + lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name_ns( name = 'cfvo' uri = namespace-main ). lo_ixml_iterator = lo_ixml_nodes->create_iterator( ). lo_ixml ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml IS BOUND. @@ -3258,7 +3285,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_ixml ?= lo_ixml_iterator->get_next( ). ENDWHILE. - lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'color' ). + lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name_ns( name = 'color' uri = namespace-main ). lo_ixml_iterator = lo_ixml_nodes->create_iterator( ). lo_ixml ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml IS BOUND. @@ -3288,12 +3315,12 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_ixml_iterator TYPE REF TO if_ixml_node_iterator, lo_ixml TYPE REF TO if_ixml_element. - lo_ixml ?= io_ixml_rule->find_from_name( 'color' ). + lo_ixml ?= io_ixml_rule->find_from_name_ns( name = 'color' uri = namespace-main ). IF lo_ixml IS BOUND. io_style_cond->mode_databar-colorrgb = lo_ixml->get_attribute_ns( 'rgb' ). ENDIF. - lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'cfvo' ). + lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name_ns( name = 'cfvo' uri = namespace-main ). lo_ixml_iterator = lo_ixml_nodes->create_iterator( ). lo_ixml ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml IS BOUND. @@ -3333,7 +3360,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. io_style_cond->mode_expression-cell_style = -guid. ENDIF. - lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'formula' ). + lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name_ns( name = 'formula' uri = namespace-main ). lo_ixml_iterator = lo_ixml_nodes->create_iterator( ). lo_ixml ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml IS BOUND. @@ -3363,7 +3390,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. lo_ixml_rule_iconset ?= io_ixml_rule->get_first_child( ). io_style_cond->mode_iconset-iconset = lo_ixml_rule_iconset->get_attribute_ns( 'iconSet' ). io_style_cond->mode_iconset-showvalue = lo_ixml_rule_iconset->get_attribute_ns( 'showValue' ). - lo_ixml_nodes ?= lo_ixml_rule_iconset->get_elements_by_tag_name( 'cfvo' ). + lo_ixml_nodes ?= lo_ixml_rule_iconset->get_elements_by_tag_name_ns( name = 'cfvo' uri = namespace-main ). lo_ixml_iterator = lo_ixml_nodes->create_iterator( ). lo_ixml ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml IS BOUND. @@ -3482,7 +3509,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. INTO rels_drawing_path. rels_drawing_path = resolve_path( rels_drawing_path ). rels_drawing = me->get_ixml_from_zip_archive( rels_drawing_path ). - node ?= rels_drawing->find_from_name( 'Relationship' ). + node ?= rels_drawing->find_from_name_ns( name = 'Relationship' uri = namespace-relationships ). WHILE node IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ). @@ -3515,7 +3542,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. drawing = me->get_ixml_from_zip_archive( ip_path ). * one-cell anchor ************** - anchors = drawing->get_elements_by_tag_name( name = 'oneCellAnchor' namespace = 'xdr' ). + anchors = drawing->get_elements_by_tag_name_ns( name = 'oneCellAnchor' uri = namespace-xdr ). coll_length = anchors->get_length( ). iterator = anchors->create_iterator( ). DO coll_length TIMES. @@ -3530,7 +3557,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDDO. * two-cell anchor ****************** - anchors = drawing->get_elements_by_tag_name( name = 'twoCellAnchor' namespace = 'xdr' ). + anchors = drawing->get_elements_by_tag_name_ns( name = 'twoCellAnchor' uri = namespace-xdr ). coll_length = anchors->get_length( ). iterator = anchors->create_iterator( ). DO coll_length TIMES. @@ -3570,7 +3597,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. FIELD-SYMBOLS: LIKE LINE OF it_external_hyperlinks. - lo_ixml_hyperlinks = io_ixml_worksheet->get_elements_by_tag_name( name = 'hyperlink' ). + lo_ixml_hyperlinks = io_ixml_worksheet->get_elements_by_tag_name_ns( name = 'hyperlink' uri = namespace-main ). lo_ixml_iterator = lo_ixml_hyperlinks->create_iterator( ). lo_ixml_hyperlink ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml_hyperlink IS BOUND. @@ -3582,8 +3609,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ls_hyperlink-display = lo_ixml_hyperlink->get_attribute_ns( 'display' ). ls_hyperlink-location = lo_ixml_hyperlink->get_attribute_ns( 'location' ). ls_hyperlink-tooltip = lo_ixml_hyperlink->get_attribute_ns( 'tooltip' ). - ls_hyperlink-r_id = lo_ixml_hyperlink->get_attribute( name = 'id' - namespace = 'r' ). + ls_hyperlink-r_id = lo_ixml_hyperlink->get_attribute_ns( name = 'id' uri = namespace-r ). IF ls_hyperlink-r_id IS INITIAL. " Internal link lv_is_internal = abap_true. lv_url = ls_hyperlink-location. @@ -3648,7 +3674,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. CLEAR lt_ignored_errors. - lo_ixml_ignored_errors = io_ixml_worksheet->get_elements_by_tag_name( name = 'ignoredError' ). + lo_ixml_ignored_errors = io_ixml_worksheet->get_elements_by_tag_name_ns( name = 'ignoredError' uri = namespace-main ). lo_ixml_iterator = lo_ixml_ignored_errors->create_iterator( ). lo_ixml_ignored_error ?= lo_ixml_iterator->get_next( ). @@ -3705,9 +3731,9 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. * Since rows and columns are handled in separate nodes * Build table to identify these cells *--------------------------------------------------------------------* - lo_node ?= io_ixml_worksheet->find_from_name( 'rowBreaks' ). + lo_node ?= io_ixml_worksheet->find_from_name_ns( name = 'rowBreaks' uri = namespace-main ). CHECK lo_node IS BOUND. - lo_ixml_rowbreaks = lo_node->get_elements_by_tag_name( name = 'brk' ). + lo_ixml_rowbreaks = lo_node->get_elements_by_tag_name_ns( name = 'brk' uri = namespace-main ). lo_ixml_iterator = lo_ixml_rowbreaks->create_iterator( ). lo_ixml_rowbreak ?= lo_ixml_iterator->get_next( ). WHILE lo_ixml_rowbreak IS BOUND. @@ -3718,9 +3744,9 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ENDWHILE. CHECK IS ASSIGNED. - lo_node ?= io_ixml_worksheet->find_from_name( 'colBreaks' ). + lo_node ?= io_ixml_worksheet->find_from_name_ns( name = 'colBreaks' uri = namespace-main ). CHECK lo_node IS BOUND. - lo_ixml_colbreaks = lo_node->get_elements_by_tag_name( name = 'brk' ). + lo_ixml_colbreaks = lo_node->get_elements_by_tag_name_ns( name = 'brk' uri = namespace-main ). lo_ixml_iterator = lo_ixml_colbreaks->create_iterator( ). lo_ixml_colbreak ?= lo_ixml_iterator->get_next( ). CLEAR lv_count. @@ -3763,7 +3789,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. ls_pagemargins TYPE lty_page_margins. - lo_ixml_pagemargins_elem = io_ixml_worksheet->find_from_name( 'pageMargins' ). + lo_ixml_pagemargins_elem = io_ixml_worksheet->find_from_name_ns( name = 'pageMargins' uri = namespace-main ). IF lo_ixml_pagemargins_elem IS NOT INITIAL. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_pagemargins_elem @@ -4076,7 +4102,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. *--------------------------------------------------------------------* * §3 Cycle through the Relationship Tags and use the ones we need *--------------------------------------------------------------------* - lo_node ?= lo_rels->find_from_name( 'Relationship' ). "#EC NOTEXT + lo_node ?= lo_rels->find_from_name_ns( name = 'Relationship' uri = namespace-relationships ). "#EC NOTEXT WHILE lo_node IS BOUND. fill_struct_from_attributes( EXPORTING diff --git a/src/zcl_excel_reader_xlsm.clas.abap b/src/zcl_excel_reader_xlsm.clas.abap index 886b571..7aa8f2c 100644 --- a/src/zcl_excel_reader_xlsm.clas.abap +++ b/src/zcl_excel_reader_xlsm.clas.abap @@ -73,7 +73,7 @@ CLASS zcl_excel_reader_xlsm IMPLEMENTATION. rels_workbook = me->get_ixml_from_zip_archive( rels_workbook_path ). - node ?= rels_workbook->find_from_name( 'Relationship' ). + node ?= rels_workbook->find_from_name_ns( name = 'Relationship' uri = namespace-relationships ). WHILE node IS BOUND. me->fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ). @@ -91,7 +91,7 @@ CLASS zcl_excel_reader_xlsm IMPLEMENTATION. " Read Workbook codeName workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ). - node ?= workbook->find_from_name( 'fileVersion' ). + node ?= workbook->find_from_name_ns( name = 'fileVersion' uri = namespace-main ). IF node IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = node @@ -102,7 +102,7 @@ CLASS zcl_excel_reader_xlsm IMPLEMENTATION. " Read Workbook codeName workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ). - node ?= workbook->find_from_name( 'workbookPr' ). + node ?= workbook->find_from_name_ns( name = 'workbookPr' uri = namespace-main ). IF node IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = node @@ -125,7 +125,7 @@ CLASS zcl_excel_reader_xlsm IMPLEMENTATION. " Read Workbook codeName worksheet = me->get_ixml_from_zip_archive( ip_path ). - node ?= worksheet->find_from_name( 'sheetPr' ). + node ?= worksheet->find_from_name_ns( name = 'sheetPr' uri = namespace-main ). IF node IS BOUND. fill_struct_from_attributes( EXPORTING ip_element = node diff --git a/src/zcl_excel_theme_eclrschemelst.clas.abap b/src/zcl_excel_theme_eclrschemelst.clas.abap index 2fc41e1..02bf7c3 100644 --- a/src/zcl_excel_theme_eclrschemelst.clas.abap +++ b/src/zcl_excel_theme_eclrschemelst.clas.abap @@ -41,7 +41,6 @@ CLASS zcl_excel_theme_eclrschemelst IMPLEMENTATION. METHOD load. - "! so far copy only existing values - extracolor ?= io_extra_color. + extracolor = zcl_excel_common=>clone_ixml_with_namespaces( io_extra_color ). ENDMETHOD. "load ENDCLASS. diff --git a/src/zcl_excel_theme_extlst.clas.abap b/src/zcl_excel_theme_extlst.clas.abap index b22209c..f36f14d 100644 --- a/src/zcl_excel_theme_extlst.clas.abap +++ b/src/zcl_excel_theme_extlst.clas.abap @@ -41,7 +41,6 @@ CLASS zcl_excel_theme_extlst IMPLEMENTATION. METHOD load. - "! so far copy only existing values - extlst ?= io_extlst. + extlst = zcl_excel_common=>clone_ixml_with_namespaces( io_extlst ). ENDMETHOD. "load ENDCLASS. diff --git a/src/zcl_excel_theme_fmt_scheme.clas.abap b/src/zcl_excel_theme_fmt_scheme.clas.abap index 4923839..07c8a65 100644 --- a/src/zcl_excel_theme_fmt_scheme.clas.abap +++ b/src/zcl_excel_theme_fmt_scheme.clas.abap @@ -189,7 +189,6 @@ CLASS zcl_excel_theme_fmt_scheme IMPLEMENTATION. METHOD load. - "! so far copy only existing values - fmt_scheme ?= io_fmt_scheme. + fmt_scheme = zcl_excel_common=>clone_ixml_with_namespaces( io_fmt_scheme ). ENDMETHOD. "load ENDCLASS. diff --git a/src/zcl_excel_theme_objectdefaults.clas.abap b/src/zcl_excel_theme_objectdefaults.clas.abap index b00b45f..6298ca6 100644 --- a/src/zcl_excel_theme_objectdefaults.clas.abap +++ b/src/zcl_excel_theme_objectdefaults.clas.abap @@ -39,7 +39,6 @@ CLASS zcl_excel_theme_objectdefaults IMPLEMENTATION. METHOD load. - "! so far copy only existing values - objectdefaults ?= io_object_def. + objectdefaults = zcl_excel_common=>clone_ixml_with_namespaces( io_object_def ). ENDMETHOD. "load ENDCLASS.