PHP读取XML 值 - PHP读取XML 内容 (四)

发布时间:2008年08月15日      浏览次数:731 次
Php读取XML再通过一个例子巩固一下:
XML文件(cy.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<LevelOne>
<LevelTwo>
<LevelThree id="1">This is Text One</LevelThree>
<LevelThree id="2">This is Text Two</LevelThree>
<LevelThree id="3">This is Text Three</LevelThree>
</LevelTwo>
<LevelTwo>
<LevelThree id="4">This is Text Four</LevelThree>
<LevelThree id="5">This is Text Five</LevelThree>
<LevelThree id="6">This is Text Six</LevelThree>
</LevelTwo>
</LevelOne>
Php文件(cy.php)如下:
<?php
$xml = new DOMDocument(); //建立一个DOMDocument
$xml->load('cy.xml'); //Php指定需要读取xml文件的位置
$LevelOne = $xml->getElementsByTagName('LevelOne');//按照名称取得节点,返回所有节点的集合,不过这里这样读LevelOne是没有意义的....
$LevelOne = $xml->getElementsByTagName('LevelOne')->item(0);//返回第一个LevelOne节点中的内容
$LevelTwo = $LevelOne->getElementsByTagName('LevelTwo'); //按照名称取得节点,返回所有LevelTwo
foreach ( $LevelTwo as $Content )//循环读出所有LevelTwo,并在循环里,把LevelTwo用Content表示
{
$LevelThree = $Content->getElementsByTagName('LevelThree');//返回所有LevelThree
foreach ( $LevelThree as $Concert )
{
$name = $Concert->nodeName;//节点名称
$value = $Concert->nodeValue;//节点值
$id = $Concert->getAttribute('id');//"id"属性值
echo $name."<br />";
echo $value."<br />";
echo $id."<br />";
}
}
?>
如果用$LevelOne = $xml->getElementsByTagName('LevelOne')这样的方式取得节点,那么,读取里面的内容,需要用foreach循环,因为$LevelOne = $xml->getElementsByTagName ('LevelOne')返回的,是一个集合,并不是一个具体的节点----仅管叫做LevelOne的节点只有一个....
如果用$LevelOne = $xml->getElementsByTagName('LevelOne')->item(0)这样的方式取得节点,那么读取里面的内容,可以直接$LevelOne->xxxxxx,因为这样返回的是一个具体的节点。
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!