如何在PHP中获取XML元素中的属性值?

时间:2017-10-13 21:14:21

标签: php xml

如何在XML元素中获取属性的值?

例如: 我想获取属性 类别 的值。

<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>

3 个答案:

答案 0 :(得分:0)

使用SimpleXML扩展程序:

<?php
$xml = '<bookstore>
<book category="cooking">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>
</bookstore>';
$doc = simplexml_load_string($xml);
echo $doc->book->attributes()->category; // cooking
echo $doc->book->title.PHP_EOL; // Everyday Italian
echo $doc->book->title->attributes()->lang.PHP_EOL; // en

Demo

每个元素都将被设置为根对象的属性,以便您直接访问。在这种特殊情况下,您可以使用attributes()获取book元素的属性。

您可以在示例中看到,您可以通过相同的方式继续浏览关卡:要转到lang中的book属性,请使用$doc->book->title->attributes()->lang

答案 1 :(得分:0)

$xml=simplexml_load_file("yourfile.xml");
echo $xml->book[0]['category'];

答案 2 :(得分:0)

PHP在标准库中提供了一个<?php class TaskList { var $items; var $listname; public function __construct($listname){ session_start(); $this->listname = $listname; if(isset($_SESSION[$this->listname])) { $this->items = $_SESSION[$this->listname]; } else { $this->items = array(); } } public function addItem($item) { $this->items[] = $item; } public function deleteItem($key) { unset($this->items[$key]); } public function save() { $_SESSION[$this->listname] = $this->items; } } 类,可用于解析XML文件。

SimpleXML