我有一个webservice,我在更新数据库之前检索信息。
我必须在插入之前搜索一些值,如果我找到它们,显然我不会插入它们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
或其他什么?
答案 0 :(得分:1)
我不确定为什么你会尝试插入类别,如果它是空的但我认为这就是你的意思:
if(isset($resources->category[@id]) && !empty($resources->category[@id])){
//insert category
}
答案 1 :(得分:1)
如果您想测试category
元素中是否有任何 categories
个孩子,您可以测试一下:
$category = $xml->categories->category;
然后可以通过category
函数检索这些count()
子元素的数量:
if ($category->count()) {
echo "ID: ", $category['id'];
}
或者你可以明确地寻找第一个元素:
$category = $xml->categories->category[0]
$category
变量如果不存在则为NULL
,否则为XML元素:
if ($category = $xml->categories->category[0]) {
// insert $category
}
希望这有用。