21,886
社区成员
发帖
与我相关
我的任务
分享
$xml ="a.xml";
$dom = new DOMDocument();
$dom->load($xml);
$xml_value = $dom->getElementsByTagName('data');//标签
foreach($xml_value as $value){
$nodevalue = $value->nodeValue;
}
<html>
<head><title>My Library</title></head>
<body>
<?php
class BookList{
var $parser,$record,$current_field='',$field_type,$ends_record,$records;
function BookList($filename){
$this->parser=xml_parser_create("utf-8");
xml_set_object($this->parser,&$this);
xml_set_element_handler($this->parser,start_element,end_element);
xml_set_character_data_handler($this->parser,cdata);
//1=单个字段,2=数组字段,3=记录容器
$this->field_type=array('title'=>1,
'author'=>2,
'isbn'=>1,
'comment'=>1 );
$this->ends_record=array("book"=>true);
$x=join("",file($filename));
xml_parse($this->parser,$x);
xml_parser_free($this->parser);
}
function start_element($p,$element,&$attributes){
$element=strtolower($element);
if($this->field_type[$element]!=0){
$this->current_field=$element;
}else{
$this->current_field='';
}
}
function end_element($p,$element){
$element=strtolower($element);
if($this->ends_record[$element]){
$this->records[]=$this->record;
$this->record=array();
}
$this->current_field='';
}
function cdata($p,$text){
if($this->field_type[$this->current_field]===2){
$this->record[$this->current_field][]=$text;
}elseif($this->field_type[$this->current_field]===1){
$this->record[$this->current_field]=$text;
}
}
function show_menu()
{
echo "<table border='1'>\n";
foreach($this->records as $book){
echo "<tr>";
$authors=join(',',$book['author']);
printf("<th><a href='%s'>%s</a></th><td>%s</td>\n",
$_SERVER['PHP_SELF'].'?isbn='.$book['isbn'],
$book['title'],
$authors);
echo "</tr>\n";
}
echo "</table>";
}
function show_book($isbn){
$Find=false;
foreach($this->records as $book){
if($book['isbn']===$isbn){
$author=join(',',$book['author']);
printf("<b>%s</b> by %s.<br>",$book['title'],$author);
printf("ISBN:%s<br>",$isbn);
printf("Comment:%s\n",$book['comment']);
$Find=true;
break;
}
}
if(!$Find)echo "<b style='color:red'>Can't find this book of '$isbn'</b>";
echo '<p>Back to the <a href="'.$_SERVER['PHP_SELF'].'">list of books</a>.</p>';
}
}
$lib=new BookList("book.xml");
if($_GET['isbn']){
$lib->show_book($_GET['isbn']);
}
else{
$lib->show_menu();
}
?>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<library>
<book>
<title><![CDATA[PHP编程]]></title>
<authors>
<author>Rasmus Lerdorf</author>
<author>Kevin Tatroe</author>
</authors>
<isbn>1-56592-610-2</isbn>
<comment>A greate book!</comment>
</book>
<book>
<title><![CDATA[PHP参考手册]]></title>
<authors>
<author>Rasmus Lerdorf</author>
</authors>
<isbn>1-56592-769-9</isbn>
<comment>It really does fit in your pocket!</comment>
</book>
<book>
<title><![CDATA[Perl手册]]></title>
<authors>
<author>Tom Christiansen</author>
<author>Nathan Torkington</author>
</authors>
<isbn>1-56692-243-3</isbn>
<comment>Hundreds of useful techniques,most just as applicable to PHP as tc perl</comment>
</book>
</library>