9

PHPのSimpleXMLクラスを使用しているXMLがいくつかあり、XML内に次のような要素があります。

<condition id="1" name="New"></condition>
<condition id="2" name="Used"></condition>

ただし、常に存在するとは限らないため、最初に存在するかどうかを確認する必要があります。

私が試してみました..

if (is_object($bookInfo->page->offers->condition['used'])) {
    echo 'yes';
}

としても..

if (isset($bookInfo->page->offers->condition['used'])) {
    echo 'yes';
}

しかし、どちらも機能しません。属性部分を削除した場合にのみ機能します。

では、属性がオブジェクトの一部として設定されているかどうかを確認するにはどうすればよいでしょうか?

4

3 に答える 3

7

実際には、実際にはSimpleXMLElement::attributes()を使用する必要がありますが、後でisset()を使用してオブジェクトを確認する必要があります。

$attr = $bookInfo->page->offers->condition->attributes();
if (isset($attr['name'])) {
    //your attribute is contained, no matter if empty or with a value
}
else {
    //this key does not exist in your attributes list
}
于 2013-02-27T10:36:52.013 に答える
1

SimpleXMLElement::attributes()を使用できます

$attr = $bookInfo->page->offers->condition->attributes();

if ($attr['name'] == 'Used') {
  // ...
于 2012-06-06T07:09:39.200 に答える