Jump to content

Archived

This topic is now archived and is closed to further replies.

jimbob26

XML parsing help

Recommended Posts

Hello, I currently have this XML file for images:
[code]
<?xml version="1.0"?>
<images>
    <image src="a.png">
        <name>a</name>
        <description>Jim a</description>
    </image>
    <image src="b.png">
        <name>b</name>
        <description>Jim b</description>
    </image>
</images>
[/code]

And also have this php file:

[code]
<?php
$open_stack = array();
$parser = xml_parser_create();
xml_set_element_handler($parser,"start_handler","end_handler");
xml_set_character_data_handler($parser,"character_handler");
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parse($parser,implode("",file("images.xml"))) or die(format_error($parser));
xml_parser_free($parser);
function start_handler($p,$name,$atts) {
    global $open_stack;
    $open_stack[] = array($name,"");
}
function character_handler($p,$txt) {
    global $open_stack;
    $cur_index = count($open_stack)-1;
    $open_stack[$cur_index][1] .= $txt;
}
function end_handler($p,$name) {
    global $open_stack;
    $el = array_pop($open_stack);
    if($name=="name") {
        print "<b>$el[1]</b>";
    }
    if($name=="description") {
        print "<i>$el[1]</i><br>";
    }
}
function format_error($p) {
    $code = xml_error_code($p);
    $str = xml_error_string($code);
    $line = xml_get_current_line_number($p);
    return "XML ERROR ($code): $str at line $line";
}
?>
[/code]

This works fine but im not sure how to extract the src attribute from the image tag (<image src="a.png">). Everything else is working fine, both the name and description of the file is being outputted correctly.

Any help is greatly appreciated.
Thanks in advance, jim

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.