Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中转换XML_Php_Xml - Fatal编程技术网

在php中转换XML

在php中转换XML,php,xml,Php,Xml,我有个问题。我有两个文件。第一个文件data.php: <?php $str = '<?xml version="1.0"?> <products> <product> <name>Radio</name> <price>79.99</price> <desc>Place for describe</desc> <

我有个问题。我有两个文件。第一个文件data.php:

<?php
$str = '<?xml version="1.0"?>
<products>
    <product>
        <name>Radio</name>
        <price>79.99</price>
        <desc>Place for describe</desc>
    </product>
        <product>
        <name>TV</name>
        <price>599.99</price>
        <desc>Place for describe</desc>
    </product>
    <product>
        <name>Book</name>
        <price>75.00</price>
        <desc>Place for describe</desc>
    </product>
<products>'; 

?>

以及第二个文件index.php:

<?php
include('data.php');

$products =new SimpleXMLElement($str);

foreach($products->product as $product){
echo $product->name;
echo "<br>";
}

?>
产品作为$product){
echo$product->name;
回声“
”; } ?>
我使用Wamserver。当我尝试在web浏览器中运行index.php时,会出现以下错误:
我想显示每个产品的名称。有人能告诉我如何解决这个问题吗?

首先,XML无效,您需要在末尾添加一个结束标记:

    </product>
</products>'; 
示例(使用
php-a
):

$php-a
交互式模式已启用
php>$str=
php'
php'
php的收音机
php'79.99
php的位置
php'
php'
php电视
php'599.99
php的位置
php'
php'
php手册
php'75.00
php的位置
php'
php';
php>$products=simplexml\u load\u字符串($str);
php>foreach($products->product as$product){
php{echo$product->name;
php{echo“
”; php{} 广播
电视
书籍

您的产品端块错误,您忘记了/

请找到正确的xml

<?xml version="1.0"?>
<products>
    <product>
        <name>Radio</name>
        <price>79.99</price>
        <desc>Place for describe</desc>
    </product>
    <product>
        <name>TV</name>
        <price>599.99</price>
       <desc>Place for describe</desc>
    </product>
    <product>
        <name>Book</name>
        <price>75.00</price>
        <desc>Place for describe</desc>
    </product>
</products>

无线电
79.99
描述地点
电视
599.99
描述地点
书
75
描述地点

您可以使用此网站在线检查xml:

因为CommuSoft说您尚未关闭xml块

</product>
</products>';

';
您应该像CommuSoft所说的那样使用
simplexml\u load\u string($str);
当您将XML作为字符串存储在变量中时

<?xml version="1.0"?>
<products>
    <product>
        <name>Radio</name>
        <price>79.99</price>
        <desc>Place for describe</desc>
    </product>
    <product>
        <name>TV</name>
        <price>599.99</price>
       <desc>Place for describe</desc>
    </product>
    <product>
        <name>Book</name>
        <price>75.00</price>
        <desc>Place for describe</desc>
    </product>
</products>
</product>
</products>';