;/”, $block, $title );
preg_match_all( ”/\<publisher\>(.*?)\<\/publisher\>/”, $block, $publisher );
echo( $title[0].” - ”.$author[0].” - ”. $publisher[0].”\n” );
}
/*
我从不建议使用正则表达式读取 XML,但是有时它是兼容性最好的方式,因为正则表达式函数总是可用的。不要用正则表达式读取直接来自用户 的 XML,因为无法控制这类 XML 的格式或结构。应当一直用 DOM 库或 SAX 解析器读取来自用户的 XML。
*/
// 用 DOM 编写 XML
复制代码 代码如下:
$books = array();
$books [] = array(
''title'' => ''PHP Hacks'',
''author'' => ''Jack Herrington'',
''publisher'' => ”O''Reilly”
);
$books [] = array(
''title'' => ''Podcasting Hacks'',
''author'' => ''Jack Herrington'',
''publisher'' => ”O''Reilly”
);
$doc = new DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElement( ”books” );
$doc->appendChild( $r );
foreach( $books as $book ){
$b = $doc->createElement( ”book” );
$author = $doc->createElement( ”author” );
$author->appendChild( $doc->createTextNode( $book[''author''] ) );
$b->appendChild( $author );
$title = $doc->createElement( ”title” );
$title->appendChild( $doc->createTextNode( $book[''title''] ) );
$b->appendChild( $title );
$publisher = $doc->createElement( ”publisher” );
$publisher->appendChild( $doc->createTextNode( $book[''publisher''] ) );
$b->appendChild( $publisher );
$r->appendChild( $b );
}
//echo $doc->saveXML();
/*
在脚本的顶部,用一些示例图书装入了 books 数组。这个数据可以来自用户也可以来自数据库。
示例图书装入之后,脚本创建一个 new DOMDocument,并把根节点 books 添加到它。然后脚本为每本书 的 author、title 和 publisher 创建节点,并为每个节点添加文本节点。每个 book 节点的最后一步是重新把它添加到根节 点 books。
使用 DOM 的真正价值在于它创建的 XML 总是格式正确的。但是如果不能用 DOM 创建 XML 时该怎么办?
Xml代码
复制代码 代码如下:
<?php
PHP 编写xml
$books = array();
$books [] = array(
''title'' => ''PHP Hacks'',
''author'' => ''Jack Herrington'',
''publisher'' => ”O''Reilly”
);
$books [] = array(
''title'' => ''Podcasting Hacks'',
''author'' => ''Jack Herrington'',
''publisher'' => ”O''Reilly”
);
?>
<books>
<?php
foreach( $books as $book )
{
?>
<book>
<title><?php echo( $book[''title''] ); ?></title>
<author><?php echo( $book[''author''] ); ?>
</author>
<publisher><?php echo( $book[''publisher''] ); ?>
</publisher>
</book>
<?php
}
?>
</books>
实例中用到的 test.xml 如下:
复制代码 代码如下:
<?xml version=”1.0″ encoding=”utf8″?>
<books>
<book>
<author>Jack Herrington</author>
<title>PHP Hacks</title>
<publisher>O''Reilly</publisher>
</book>
<book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O''Reilly</publisher>
</book>
</books>