加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP读取XML值的代码(推荐)

发布时间:2020-12-13 05:49:09 所属栏目:PHP教程 来源:网络整理
导读:用Php读取XML最简单的情况: XML文件(cy.xml)如下: div class="codetitle" a style="CURSOR: pointer" data="26836" class="copybut" id="copybut26836" onclick="doCopy('code26836')" 代码如下: div class="codebody" id="code26836" ?xml version=”1.0″

用Php读取XML最简单的情况: XML文件(cy.xml)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="26836" class="copybut" id="copybut26836" onclick="doCopy('code26836')"> 代码如下:<div class="codebody" id="code26836">
<?xml version=”1.0″ encoding=”gb2312″?>

1
2
3


Php文件(cy.php)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="18550" class="copybut" id="copybut18550" onclick="doCopy('code18550')"> 代码如下:<div class="codebody" id="code18550">
<?php
$xml = new DOMDocument();
$xml->load('cy.xml');
foreach($xml->getElementsByTagName('list') as $list)
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
?>

cy.php的运行结果:
1
2
3 ============= 用Php读取XML稍微复杂一点的情况: cy.xml如下:
<div class="codetitle"><a style="CURSOR: pointer" data="96524" class="copybut" id="copybut96524" onclick="doCopy('code96524')"> 代码如下:<div class="codebody" id="code96524">
<?xml version=”1.0″ encoding=”gb2312″?>


1
2
3



cy.php如下(和第一种情况没有任何变化):
<div class="codetitle"><a style="CURSOR: pointer" data="18550" class="copybut" id="copybut18550" onclick="doCopy('code18550')"> 代码如下:<div class="codebody" id="code18550">
<?php
$xml = new DOMDocument();
$xml->load('cy.xml');
foreach($xml->getElementsByTagName('list') as $list)
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
?>

cy.php的运行结果和第一次也相同:
1
2
3 Php读取XML第三种情况: XML文件(cy.xml)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="17482" class="copybut" id="copybut17482" onclick="doCopy('code17482')"> 代码如下:<div class="codebody" id="code17482">
<?xml version=”1.0″ encoding=”gb2312″?>


1
2
3


4
5
6



Php文件(cy.php)如下(和第一次依然没有变化):
<div class="codetitle"><a style="CURSOR: pointer" data="18550" class="copybut" id="copybut18550" onclick="doCopy('code18550')"> 代码如下:<div class="codebody" id="code18550">
<?php
$xml = new DOMDocument();
$xml->load('cy.xml');
foreach($xml->getElementsByTagName('list') as $list)
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
?>

cy.php的输出结果:
1
2
3
4
5
6 =========== Php读取XML第四种情况,保持cy.xml不变,改变cy.php: XML文件(cy.xml)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="17482" class="copybut" id="copybut17482" onclick="doCopy('code17482')"> 代码如下:<div class="codebody" id="code17482">
<?xml version=”1.0″ encoding=”gb2312″?>


1
2
3


4
5
6



Php文件(cy.php)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="46322" class="copybut" id="copybut46322" onclick="doCopy('code46322')"> 代码如下:<div class="codebody" id="code46322">
<?php
$xml = new DOMDocument();
$xml->load('cy.xml');
$main = $xml->getElementsByTagName('main');
foreach( $main as $main)
{
$list = $main->getElementsByTagName( “list” );
foreach ( $list as $list )
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
}
?>

cy.php输出结果:
1
2
3
4
5
6 为什么两次的cy.php不同,但输出结果是相同的?让我们来看下一个例子 ============== Php读取XML第五种情况,改变cy.xml,使cy.php保持第四种情况: XML文件(cy.xml)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="13210" class="copybut" id="copybut13210" onclick="doCopy('code13210')"> 代码如下:<div class="codebody" id="code13210">
<?xml version=”1.0″ encoding=”gb2312″?>

1
2
3


4
5
6


7
8
9


Php文件(cy.php)和第四种情况相同:
<div class="codetitle"><a style="CURSOR: pointer" data="46322" class="copybut" id="copybut46322" onclick="doCopy('code46322')"> 代码如下:<div class="codebody" id="code46322">
<?php
$xml = new DOMDocument();
$xml->load('cy.xml');
$main = $xml->getElementsByTagName('main');
foreach( $main as $main)
{
$list = $main->getElementsByTagName( “list” );
foreach ( $list as $list )
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
}
?>

cy.php输出结果为:
1
2
3
4
5
6 为什么

7
8
9

中的7,8,9没有被读出来?
因为我们的cy.php只读取
标记中的内容.标记中的内容是不会被读取的.
我们这里所提到的”标记”,在XML里被称做”节点”;
关于”节点”的相关概念,我们将在以后说明. Php读取XML情况六,再foreach一次,我们把7,9读出来!: XML文件(cy.xm)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="87979" class="copybut" id="copybut87979" onclick="doCopy('code87979')"> 代码如下:<div class="codebody" id="code87979">
<?xml version=”1.0″ encoding=”gb2312″?>


1
2
3


4
5
6


7
8
9



Php文件(cy.php)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="61680" class="copybut" id="copybut61680" onclick="doCopy('code61680')"> 代码如下:<div class="codebody" id="code61680">
<?php
$xml = new DOMDocument();
$xml->load('cy.xml');
$main = $xml->getElementsByTagName('main');
foreach( $main as $main)
{
$list = $main->getElementsByTagName( “list” );
foreach ( $list as $list )
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
}
$m = $xml->getElementsByTagName('m');
foreach( $m as $m)
{
$list = $m->getElementsByTagName( “list” );
foreach ( $list as $list )
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
}
?>

cy.php输出结果:
1
2
3
4
5
6
7
8
9 =============== Php读取XML情况七,cy.xml变得更复杂一些: XML文件(cy.xml)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="14019" class="copybut" id="copybut14019" onclick="doCopy('code14019')"> 代码如下:<div class="codebody" id="code14019">
<?xml version=”1.0″ encoding=”gb2312″?>


a
1
2
3


b
4
5
6


c
7
8
9



那么,我们如何只读出
中的值呢? Php文件(cy.php)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="57003" class="copybut" id="copybut57003" onclick="doCopy('code57003')"> 代码如下:<div class="codebody" id="code57003">
<?php
$xml = new DOMDocument();
$xml->load('cy.xml');
$main = $xml->getElementsByTagName('main');
foreach( $main as $main)
{
$list = $main->getElementsByTagName( “list” );
foreach ( $list as $list )
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
$title = $main->getElementsByTagName( “title” );
foreach ( $title as $title )
{
$value = $title->firstChild->nodeValue;
echo $value.”
”;
}
} $m = $xml->getElementsByTagName('m');
foreach( $m as $m)
{
$list = $m->getElementsByTagName( “list” );
foreach ( $list as $list )
{
$value = $list->firstChild->nodeValue;
echo $value.”
”;
}
}
?>

cy.php输出结果:
1
2
3
a
4
5
6 7
8
9 想一下,如何读出的值? Php读取XML再通过一个例子巩固一下: XML文件(cy.xml)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="81166" class="copybut" id="copybut81166" onclick="doCopy('code81166')"> 代码如下:<div class="codebody" id="code81166">
<?xml version=”1.0″ encoding=”gb2312″?>


This is Text One
This is Text Two
This is Text Three


This is Text Four
This is Text Five
This is Text Six



Php文件(cy.php)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="8678" class="copybut" id="copybut8678" onclick="doCopy('code8678')"> 代码如下:<div class="codebody" id="code8678">
<?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.”
”;
echo $value.”
”;
echo $id.”
”;
}
}
?>

如果用$LevelOne = $xml->getElementsByTagName('LevelOne')这样的方式取得节点,那么,读取里面的内容,需要用foreach 循环,因为$LevelOne = $xml->getElementsByTagName ('LevelOne')返回的,是一个集合,并不是一个具体的节点—-仅管叫做LevelOne的节点只有一个….
如果用$LevelOne = $xml->getElementsByTagName('LevelOne')->item(0)这样的方式取得节点,那么读取里面的内 容,可以直接$LevelOne->xxxxxx,因为这样返回的是一个具体的节点。 现在提供一种很简便的方法用PHP读取XML: XML文件(cy.xml)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="73025" class="copybut" id="copybut73025" onclick="doCopy('code73025')"> 代码如下:<div class="codebody" id="code73025">
<?xml version=”1.0″ encoding=”gb2312″?>



czbin xml版块
xml的相关文章


czbin php版块
php的相关文章


czbin ajax版块
ajax的相关文章




Php文件(cy.php)如下:
<div class="codetitle"><a style="CURSOR: pointer" data="6542" class="copybut" id="copybut6542" onclick="doCopy('code6542')"> 代码如下:<div class="codebody" id="code6542">
<?php
$xml = simplexml_load_file('sxml.xml');
$part = $xml->site->part;
foreach ( $part as $content )
{
echo $content['id'].”
”;
echo $content->title.”
”;
echo $content->title['id'].”
”;
echo $content->describe.”
”;
}
?>

cy.php输出结果:
1
czbin xml版块
a
xml的相关文章
2
czbin php版块 php的相关文章
3
czbin ajax版块
c
ajax的相关文章 怎么样?的确很简单吧!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读