SimpleXML
介绍
-
SimpleXML 是一个 PHP 库,它提供了一种处理 XML 文档的简便方法(尤其是读取和迭代 XML 数据)。
-
唯一的限制是 XML 文档必须格式良好。
使用过程方法解析 XML
// Load an XML string
$xmlstr = file_get_contents('library.xml');
$library = simplexml_load_string($xmlstr);
// Load an XML file
$library = simplexml_load_file('library.xml');
// You can load a local file path or a valid URL (if allow_url_fopen is set to "On" in php.ini
使用 OOP 方法解析 XML
// $isPathToFile: it informs the constructor that the 1st argument represents the path to a file,
// rather than a string that contains 1the XML data itself.
// Load an XML string
$xmlstr = file_get_contents('library.xml');
$library = new SimpleXMLElement($xmlstr);
// Load an XML file
$library = new SimpleXMLElement('library.xml', NULL, true);
// $isPathToFile: it informs the constructor that the first argument represents the path to a file, rather than a string that contains 1the XML data itself.
访问儿童和属性
- 当 SimpleXML 解析 XML 文档时,它会将其所有 XML 元素或节点转换为生成的 SimpleXMLElement 对象的属性
- 此外,它还将 XML 属性转换为可从其所属的属性访问的关联数组。
当你知道他们的名字时:
$library = new SimpleXMLElement('library.xml', NULL, true);
foreach ($library->book as $book){
echo $book['isbn'];
echo $book->title;
echo $book->author;
echo $book->publisher;
}
- 这种方法的主要缺点是必须知道 XML 文档中每个元素和属性的名称。
当你不知道他们的名字(或你不想知道他们)时:
foreach ($library->children() as $child){
echo $child->getName();
// Get attributes of this element
foreach ($child->attributes() as $attr){
echo ' ' . $attr->getName() . ': ' . $attr;
}
// Get children
foreach ($child->children() as $subchild){
echo ' ' . $subchild->getName() . ': ' . $subchild;
}
}