Rumah > php教程 > php手册 > PHP simplexml使用方法详解

PHP simplexml使用方法详解

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-05-25 16:42:14
asal
1297 orang telah melayarinya

本文章给来大家讲一下关于PHP下simplexml使用方法,希望通过此文章能提升大家对simplexml操作xml文档的理解,有需要了解的朋友可参考.

PHP XML处理XML代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?xml version="1.0" encoding="UTF-8"

<!-- Edited with XML Spy v2007 (http://www.phprm.com) -->

<breakfast_menu>

 <food id="1">

  <name>Belgian Waffles</name>

  <price>$5.95</price>

  <description>two of our famous Belgian Waffles with plenty of real maple syrup</description>

  <calories>650</calories>

 </food>

 <food id="2">

  <name>Strawberry Belgian Waffles</name>

  <price>$7.95</price>

  <description>light Belgian waffles covered with strawberries and whipped cream</description>

  <calories>900</calories>

 </food>

 <food id="3">

  <name>Berry-Berry Belgian Waffles</name>

  <price>$8.95</price>

  <description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description>

  <calories>900</calories>

 </food>

</breakfast_menu>

Salin selepas log masuk

php解决xml代码,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>使用simpleXML处理XML</title>

</head>

  

<body>

<table border="1" cellpadding="0" cellspacing="0" width="700">

</tbody>

<tr bgcolor="green">

<th width="5%"> </th>

<th width="20%">name</th>

<th width="10%">price</th>

<th width="55%">description</th>

<th width="10%">calories</th>

</tr>

<?php

// 使用simpleXML处理XML

$xml = simplexml_load_file(&#39;./simple.xml&#39;);

//var_dump($xml);

//echo $xml->getName();

//var_dump($xml->children());

$record = &#39;&#39;;

foreach ($xml->children() as $child) {

    $record.= &#39;<tr><td>&#39; . $child->attributes() . &#39;</td>&#39;;

    foreach ($child->children() as $item) {

        //var_dump($child);

        $record.= &#39;<td>&#39; . $item . &#39;</td>&#39;;

    }

    $record.= &#39;</tr>&#39;;

}

echo $record;

?>

</tbody>

</table>

</body>

</html>

Salin selepas log masuk

将XML转换为数组结构,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

private function change_simple_xml_to_array($obj){

  $i = 0;

  //从根节点下的二层子节点开始遍历

  foreach($obj->children() as $value){

    //如果发生同级、同标签名的情况,则加一维数组;

    if(isset($last_name) && $value->getName()==$last_name){

      //出现同名发现第二个,则推入第二维数组;

      if($i==1) $arr[$last_name]=array($arr[$last_name]);

      //遍历子节点;

      array_push($arr[$last_name],$this->change_simple_xml_to_array($value));

    }else{

      $last_name = $value->getName();

      if(count($value->children())==0) $arr[$last_name] = $value."";

      else $arr[$last_name] = $this->change_simple_xml_to_array($value);

    }

    $i++;

  }

  return $arr;

}

Salin selepas log masuk

//XML文档——————

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<?xml version="1.0" encoding="utf-8"

<use>

  <login id="1">

    <user>bddg</user>

    <pas>abcdefg</pas>

    <permission><fdsa>5</fdsa></permission>

    <online_time>2</online_time>

  </login>

  <login id="2">

    <user>baidongdaogu</user>

    <pas>aaa</pas>

    <permission>1</permission>

    <online_time>2</online_time>

  </login>

  <login id="3">

    <user>baidongdaogu</user>

    <pas>aaa</pas>

    <permission>1</permission>

    <online_time>2</online_time>

  </login>

</use>

Salin selepas log masuk

//转换后的数组————

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

Array

(

  [login] => Array

    (

      [0] => Array

        (

          [user] => bddg

          [pas] => abcdefg

          [permission] => Array

            (

              [fdsa] => 5

            )

  

          [online_time] => 2

        )

  

      [1] => Array

        (

          [user] => baidongdaogu

          [pas] => aaa

          [permission] => 1

          [online_time] => 2

        )

  

      [2] => Array

        (

          [user] => baidongdaogu

          [pas] => aaa

          [permission] => 1

          [online_time] => 2

        )

    )

)

Salin selepas log masuk


Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan