簡體   English   中英

在PHP中轉換XML

[英]Converting XML in php

我有個問題。 我有2個檔案。 第一個文件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>";
}

?>

我使用Wamserver。 當我嘗試在Web瀏覽器中運行index.php時,出現錯誤:http: //zapodaj.net/images/fbd51b9ca6da9.jpg我想顯示每個產品的名稱。 有人可以告訴我如何解決這個問題嗎?

首先,XML無效,最后需要一個結束標記:

    </product>
</products>'; 

(文件的最后幾行)。 其余的代碼似乎還可以。

其次,您應該使用

simplexml_load_string($str);

示例 (使用php -a ):

$ php -a
Interactive mode enabled

php > $str='<?xml version="1.0"?>
php ' <products>
php '     <product>
php '         <name>Radio</name>
php '         <price>79.99</price>
php '         <desc>Place for describe</desc>
php '     </product>
php '         <product>
php '         <name>TV</name>
php '         <price>599.99</price>
php '         <desc>Place for describe</desc>
php '     </product>
php '     <product>
php '         <name>Book</name>
php '         <price>75.00</price>
php '         <desc>Place for describe</desc>
php '     </product>
php ' </products>';
php > $products = simplexml_load_string($str);
php > foreach($products->product as $product){
php { echo $product->name;
php { echo "<br>";
php { }
Radio<br>TV<br>Book<br>

您的產品端塊錯誤,您忘記了/

請找到正確的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>

您可以使用此網站在線檢查xml: http//www.xmlvalidation.com/

正如CommuSoft所說,您尚未關閉XML塊

</product>
</products>';

而且您應該使用CommuSoft所說的simplexml_load_string($str); 當您將XML作為字符串存儲在變量中時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM