我有一个Web服务,在更新数据库之前,我从中检索信息。
在插入它们之前,我必须搜索一些值,如果我找到了它们,显然我不会插入它们——xml应该是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<categories>
<category id="10" xlink:href="http://www.server.it/B2B/api/categories/10"/>
</categories>
如果已满,则为:
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<categories>
</categories>
</prestashop>
在检索到我制作的xml之后:
$resources = $xml->children()->children();
if ($resources->category[@id] == ""){
insert category
}
现在,所有这些代码都运行得很好,但我必须承认,那些==""
有点糟糕,我用正确的方式测试它吗?还是其他类型的测试更好?如isset
或null
或其他什么?
我不确定如果类别为空,为什么要插入它,但我认为这就是你的意思:
if(isset($resources->category[@id]) && !empty($resources->category[@id])){
//insert category
}
如果您想测试categories
元素中是否有任何category
子级,您只需测试即可:
$category = $xml->categories->category;
然后可以通过count()
函数检索这些category
子元素的数量:
if ($category->count()) {
echo "ID: ", $category['id'];
}
或者,您可以直接明确地查找第一个元素:
$category = $xml->categories->category[0]
如果$category
变量不存在,它将是NULL
,否则它是XML元素:
if ($category = $xml->categories->category[0]) {
// insert $category
}
希望这会有所帮助。