example-php-xml-map-tags-8

  • Examples
  • XML Tag Mapping Example

  • XML Tag Mapping Example
  • XML Tag Mapping Example

    XML Tag Mapping Example

    Example #1 Map XML to HTML

    This example maps tags in an XML document directly to HTML tags.
    Elements not found in the “map array” are ignored. Of course, this
    example will only work with a specific XML document type.

    <?php
    $file 
    "data.xml";
    $map_array = array(
        
    "BOLD"     => "B",
        
    "EMPHASIS" => "I",
        
    "LITERAL"  => "TT"
    );

    function startElement($parser$name$attrs
    {
        global 
    $map_array;
        if (isset(
    $map_array[$name])) {
            echo 
    "<$map_array[$name]>";
        }
    }

    function endElement($parser$name
    {
        global 
    $map_array;
        if (isset(
    $map_array[$name])) {
            echo 
    "</$map_array[$name]>";
        }
    }

    function characterData($parser$data
    {
        echo 
    $data;
    }

    $xml_parser xml_parser_create();
    // use case-folding so we are sure to find the tag in $map_array
    xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDINGtrue);
    xml_set_element_handler($xml_parser"startElement""endElement");
    xml_set_character_data_handler($xml_parser"characterData");
    if (!(
    $fp fopen($file"r"))) {
        die(
    "could not open XML input");
    }

    while ($data fread($fp4096)) {
        if (!
    xml_parse($xml_parser$datafeof($fp))) {
            die(
    sprintf("XML error: %s at line %d",
                        
    xml_error_string(xml_get_error_code($xml_parser)),
                        
    xml_get_current_line_number($xml_parser)));
        }
    }
    xml_parser_free($xml_parser);
    ?>