php读取xml文件的xml实例代码,php读取xml实例代码

<?php教程  
$doc = new DOMDocument();  
$doc->load( ‘books.xml’ );  
$books = $doc->getElementsByTagName( “book” );  
foreach( $books as $book )  
{  
$authors = $book->getElementsByTagName( “author” );  
$author = $authors->item(0)->nodeValue;  
  
$publishers = $book->getElementsByTagName( “publisher” );  
$publisher = $publishers->item(0)->nodeValue;  
  
$titles = $book->getElementsByTagName( “title” );  
$title = $titles->item(0)->nodeValue;  
  
echo “$title – $author – $publisher “;  
echo “<br>”;  
}  
?>  

php文件

php读取xml文件的xml实例代码,php读取xml实例代码。 代码如下

 

xml文件

复制代码 代码如下:

class dom
{
  protected $_dom = null;
  
  public function __construct($xmlfile = ”,$ver = ”,$encoding =
”)
  {
    $this -> _dom = ($ver && $encoding)? new
domdocument($ver,$encoding):new domdocument();
    $xml =
!$xmlfile?file_get_contents(‘php://input’):file_get_contents($xmlfile);
    $this -> _dom -> loadxml($xml);
  }
  
  public function getvalue($nodename)
  {
    $nodes = $this -> _dom -> getelementsbytagname($nodename);
    return null !== $nodes -> item(0)?$nodes -> item(0) ->
nodevalue:false;
  }
}

<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>

<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>

<?php
class xpathExtension{
public static function getNodes($domDoc, $xpathString) {
$xp = new DOMXPath($domDoc);
$xp->registerNamespace(‘x’, ”);
$xp->registerNamespace(‘xhtml’, ”);
$xp->registerNamespace(‘i18n’,
”);
$ret = array();
$nodes = $xp->query($xpathString);
foreach ($nodes as $node) {
array_push($ret, $node);
}
return $ret;
}
}
$domDoc = new DOMDocument();
$domDoc->load(“x1.xml”);
$xpathString = “//xml/products/product/description”;
$domNodeList = xpathExtension::getNodes($domDoc, $xpathString);
//echo count($domNodeList);
foreach($domNodeList as $domNode){
echo $domNode->nodeValue;
}
?>

//本xml类代码是采用了php domdocument来深入分析xml文书档案  ?>

 1 中的 xml 包含四个书籍列表。父标志 <books> 富含一组 <book>
标志,每一个 <book> 标志又含有 <author>、<title> 和
<publisher> 标识。
当 xml 文书档案的号子结构和内容获得外界格局文件的印证后,xml
文书档案正是无可争辩的。情势文件可以用差异的格式钦定。对于本文来讲,所须求的只是格式出色的
xml。
例如感觉 xml 看起来很像超文本标志语言(html),那么就对了。xml 和 html
都以依照标志的言语,它们有相当多相似之处。可是,要重视建议的是:虽然 xml
文书档案可能是格式杰出的 html,但不是怀有的 html 文书档案都是格式特出的
xml。换行标志(br)是 xml 和 html
之间差其余三个好例子。那几个换行标识是格式卓越的 html,但不是格式杰出的
xml:
<p>this is a paragraph<br>
with a line break</p>
其一换行标志是格式特出的 xml 和 html:
<p>this is a paragraph<br />
with a line break</p>
万一要把 html 编写成一样是格式优秀的 xml,请根据 w3c
委员会的可扩大超文本标识语言(xhtml)标准。全部今世的浏览器都能显现
xhtml。并且,还足以用 xml 工具读取 xhtml 并找寻文书档案中的数据,这比剖判html 轻便得多。
使用 dom 库读取 xml
读取格式非凡的 xml 文件最轻易的章程是利用编写翻译成有个别 php
安装的文书档案对象模型 (dom)库。dom 库把全体 xml
文书档案读入内存,并用节点树表示它,如图 1 所示。
图 1. 图书 xml 的 xml dom 树

相关文章