无法使用New SimpleXMLElement来处理文件

时间:2018-02-02 10:07:00

标签: php xml simplexml

我正在使用此代码:

  $str_xml = file_get_contents('pricetest1.xml');
  $library = New SimpleXMLElement('srt_xml');
  print_r $library;

$str_xml应该稍后从URL加载,放置的XML只是一个例子。

XML看起来像这样:

<?xml version="1.0" encoding="iso-8859-1"?>
<products>
  <product id="809809">
    <name>LongJohn</name>
    <brand>7</brand>
    <product_url>https://www.example.com/producturl.html</product_url>
    <image_url>https://www.example.com/product.jpg</image_url>
    <price>369.00</price>
    <former_price>369.00</former_price>
    <in>Y</in>
    <sum>110297</sum>
  </product>
</products>
</xml>

我真的不知道如何从中获取任何错误,因为它只是让我的浏览器中没有加载页面。

我认为XML可能是ISO,而我的页面是UTF格式,但我不确定这是否真的重要,如果我错了,请纠正我。

此外,由于每个产品都有一个&#34; id&#34;在里面,这是否需要处理某种异常?

最后我会通过Feed循环并将它们打印到数据库中,但由于我甚至无法从中获得一些错误,我担心我的知识还不够对此。

我可以毫无问题地打印$str_xml,以便正确加载文件。

我感谢能得到任何帮助!

2 个答案:

答案 0 :(得分:0)

检查php网站;您为SimpleXMLElement提供的字符串根本不是xml。

$str_xml = file_get_contents('pricetest1.xml');
$library = New SimpleXMLElement($str_xml);
print_r $library;

哦;并且你的xml无效;

答案 1 :(得分:0)

xml无效,对simplexmlelement的调用使用的是字符串而不是变量

    $str_xml='<?xml version="1.0" encoding="iso-8859-1"?>
                <products>
                  <product id="809809">
                    <name>LongJohn</name>
                    <brand>7</brand>
                    <product_url>https://www.example.com/producturl.html</product_url>
                    <image_url>https://www.example.com/product.jpg</image_url>
                    <price>369.00</price>
                    <former_price>369.00</former_price>
                    <in>Y</in>
                    <sum>110297</sum>
                  </product>
                </products>';
    $library = new SimpleXMLElement( $str_xml );
    print_r( $library );