【问题标题】:XML to MySQL check if XML field is emptyXML 到 MySQL 检查 XML 字段是否为空
【发布时间】:2017-06-06 20:18:50
【问题描述】:

我通过从 XML 文件中读取数据并使用 PHP 将数据推送到我的 MySQL 表中来学习一些关于 XML、MySQL 和 PHP 的知识,我遇到的问题是当 XML 字段为空时,它是返回错误:Notice: Trying to get property of non-object in C:\xampp\htdocs\Website\update-products.php on line 177

如何检查每个对象的字段是否为空?

XML 代码

<?xml version="1.0"?>
<books>
  <book isbn="978-1594489501">
    <title></title>
    <author>Khaled Hosseini</author>
    <publisher>Riverhead Hardcover</publisher>
    <amazon_price></amazon_price>
  </book>
  <book isbn="978-1594489587">
    <title>The Brief Wondrous Life of Oscar Wao</title>
    <author>Junot Diaz</author>
    <publisher></publisher>
    <amazon_price>14.97</amazon_price>
  </book>
  <book isbn="978-0545010221">
    <title>Harry Potter and the Deathly Hallows</title>
    <author>J. K. Rowling</author>
    <publisher>Arthur A. Levine Books</publisher>
    <amazon_price>19.24</amazon_price>
  </book>
</books>```

部分 PHP 代码

$publisher = $xmlObject->item($i)->getElementsByTagName('publisher')->item(0)->childNodes->item(0)->nodeValue;

【问题讨论】:

    标签: php mysql xml


    【解决方案1】:

    如果没有看到第 177 行附近的代码,很难准确地说出。 话虽如此,在对它们进行操作之前,您需要检查是否存在可能丢失的节点。

    if(isset($document->node->child)){
       doStuff($document->node->child);
    }
    

    这样您可以跳过文档中缺少的节点而不会出错。

    【讨论】:

    • 嘿,对不起,我刚到电脑。抱歉,here's a link 到一个包含更完整代码的 pastebin。所以我在一行上尝试了它,但之后,我收到一个错误,说它是一个未定义的变量。这是我编写代码的方式:if(isset($document-&gt;node-&gt;child)){ $product_code = $xmlObject-&gt;item($i)-&gt;getElementsByTagName('product_code')-&gt;item(0)-&gt;childNodes-&gt;item(0)-&gt;nodeValue; }
    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多