PHP & XML Problem
Posted: Mon Jun 09, 2008 1:41 pm
I have a xml file,
I have already finish writing to display all the keywords (one, two,...., ten)
However I dont know how to get the "title" in each group.
Also, I need to display one group randomly and the keywords in the group at each time.
Can anyone help me?? Thanks a lot!!!!
I have already finish writing to display all the keywords (one, two,...., ten)
However I dont know how to get the "title" in each group.
Also, I need to display one group randomly and the keywords in the group at each time.
Can anyone help me?? Thanks a lot!!!!
Code: Select all
<?xml version="1.0"?>
<NEW>
<Group no="1" title ="ABC">
<keyword no="0" url="http://aaabb.com">one</keyword>
<keyword no="1" url="http://aaabb.com">two</keyword>
<keyword no="2" url="http://aaabb.com">three</keyword>
<keyword no="3" url="http://aaabb.com">four</keyword>
<keyword no="4" url="http://aaabb.com2">five</keyword>
</Group>
<Group no="2" title ="DEF">
<keyword no="0" url="http://aaabb.com">six</keyword>
<keyword no="1" url="http://aaabb.com">seven</keyword>
<keyword no="2" url="http://aaabb.com">eight</keyword>
</Group>
<Group no="3" title ="GHI">
<keyword no="0" url="http://aaabb.com">nine</keyword>
<keyword no="1" url="http://aaabb.com">ten</keyword>
</Group>
</NEW>Code: Select all
<?php
if (!($fp=@fopen("./test.xml", "r"))) die ("Couldn't open XML.");
$key_no=0;
$group_no=0;
$userdata=array();
$state='';
function start ($parser,$name,$attrib){
global $key_no;
global $userdata;
global $state;
global $group_no;
$state=$name;
}
function end ($parser,$name){
global $key_no;
global $userdata;
global $state;
global $group_no;
$state='';
if($name=="GROUP") {$group_no++;}
if($name=="KEYWORD") {$key_no++;}
}
function data ($parser, $data) {
global $key_no;
global $userdata;
global $state;
global $group_no;
if ($state=="KEYWORD") { $userdata[$key_no]->keyword = $data;}
}
if (!($xml_parser = xml_parser_create())) die("Couldn't create parser.");
xml_set_element_handler( $xml_parser, "start", "end");
xml_set_character_data_handler( $xml_parser, "data");
while( $data = fread($fp, 80000)){
if(!xml_parse($xml_parser, $data, feof($fp))) {
break;}}
xml_parser_free($xml_parser);
?>
<html>
<head><title>PHP XML parser</title>
</head>
<body>
<?php
for ($i=0;$i<$key_no; $i++)
{
echo $userdata[$i]->keyword."<br>";
}
?>
</table>
</body><html>