<Success />
要素は空の要素であり、値がないことを意味します。開始タグと終了タグの両方です。
XPath関数を使用してノードの存在をテストできますboolean()
boolean 関数は、次のように引数をブール値に変換します。
- 数値は、正または負のゼロでも NaN でもない場合にのみ真です。
- ノードセットは、空でない場合にのみ true になります
- 文字列の長さがゼロでない場合に限り、文字列は真です。
- 4 つの基本型以外の型のオブジェクトは、その型に依存する方法でブール値に変換されます。
これを行うには、メソッドDOMXPath
を使用する必要があります。DOMXPath::evaluate()
これは、型指定された結果 (この場合は a ) を返すためboolean
です。
$xml = <<< XML
<OTA_PingRS>
<Success />
<EchoData>This is some test data</EchoData>
</OTA_PingRS>
XML;
$dom = new DOMDocument;
$dom->loadXml($xml);
$xpath = new DOMXPath($dom);
$successNodeExists = $xpath->evaluate('boolean(/OTA_PingRS/Success)');
var_dump($successNodeExists); // true
デモ
もちろん、クエリを実行し/OTA_PingRS/Success
て、返された に結果があるかどうかを確認することもできDOMNodeList
ます。
$xml = <<< XML
<OTA_PingRS>
<Success />
<EchoData>This is some test data</EchoData>
</OTA_PingRS>
XML;
$dom = new DOMDocument;
$dom->loadXml($xml);
$xpath = new DOMXPath($dom);
$successNodeList = $xpath->evaluate('/OTA_PingRS/Success');
var_dump($successNodeList->length);
デモ
SimpleXMLも使用できます。
$xml = <<< XML
<OTA_PingRS>
<Success />
<EchoData>This is some test data</EchoData>
</OTA_PingRS>
XML;
$nodeCount = count(simplexml_load_string($xml)->xpath('/OTA_PingRS/Success'));
var_dump($nodeCount); // 1