For Programmers: Free Programming Magazines  


Home > Archive > PHP Programming > August 2006 > get attribute value from an XML tag









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author get attribute value from an XML tag
Alex

2006-08-30, 6:57 pm

hello,

how do i get the attribute "href" value using the following script ?

<news>
<story>
<headline href=http://www.bibo.com > Godzilla Attacks LA! </headline>
<description>Eq.........

---------------------------------------

<?php

$xml_file = "news.xml";

$xml_headline_key = "*NEWS*STORY*HEADLINE";
$xml_description_key = "*NEWS*STORY*DESCRIPTION";

$story_array = array();

$counter = 0;
class xml_story{
var $headline, $description;
}

function startTag($parser, $data){
global $current_tag;
$current_tag .= "*$data";
}

function endTag($parser, $data){
global $current_tag;
$tag_key = strrpos($current_tag, '*');
$current_tag = substr($current_tag, 0, $tag_key);
}

function contents($parser, $data){
global $current_tag, $xml_headline_key, $xml_description_key, $counter,
$story_array;
switch($current_tag){
case $xml_headline_key:
$story_array[$counter] = new xml_story();
$story_array[$counter]->headline = $data;
break;
case $xml_description_key:
$story_array[$counter]->description = $data;
$counter++;
break;
}
}

$xml_parser = xml_parser_create();

xml_set_element_handler($xml_parser, "startTag", "endTag");

xml_set_character_data_handler($xml_pars
er, "contents");

$fp = fopen($xml_file, "r") or die("Could not open file");

$data = fread($fp, filesize($xml_file)) or die("Could not read file");

if(!(xml_parse($xml_parser, $data, feof($fp)))){
die("Error on line " . xml_get_current_line_number($xml_parser)
);
}

xml_parser_free($xml_parser);

fclose($fp);

?>

<html>
<head>
<title>CNT HEADLINE NEWS</title>
</head>
<body bgcolor="#FFFFFF">
<?php
for($x=0;$x<count($story_array);$x++){
echo "\t<h2>" . $story_array[$x]->headline . "</h2>\n";
echo "\t\t\n";
echo "\t<i>" . $story_array[$x]->description . "</i>\n";
}
?>

</body>
</html>

---------------------------------------------------------------



many thanks!

Alex




Janwillem Borleffs

2006-08-30, 6:57 pm

Alex wrote:
> how do i get the attribute "href" value using the following script ?
>

[...]
> function startTag($parser, $data){
> global $current_tag;
> $current_tag .= "*$data";
> }
>


By adding support for a third argument to this functions, which will either
be null or an array containing the attribute names and their values (when
available).

See: http://www.php.net/xml_set_element_handler


JW


Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2010 codecomments.com