関数索引
hasElement() 関数は、ある要素が指定された名前の子要素をもっているかどうか調べるときに使用します。例えば、リンクや目次を経由して入手したページが、ある要素を持っているかどうか調べる時に使用します。
子要素を持っているかどうか調べたいオブジェクト(ページなど)を指定します。
要素名:調べたい要素の名前を文字列で与えます。要素名にはドットを含む要素参照は指定できません。例えば "a.b" という表記はできません。
link という名前のリンク型の要素のリンク先に指定されているページが releaseDate という要素を持っているかどうか調べてみます。
<wr-if condition='hasElement(link, "releaseDate")'>
<wr-then>
リンク先の要素は releaseDate という名前の要素をもっています。
</wr-then>
<wr-else>
リンク先の要素は releaseDate という名前の要素をもっていません。
</wr-else>
</wr-if>
index という名前の目次型の要素に掲載されているページで "会社情報" という要素を持っていて、かつ、その "会社情報" という要素が "電話番号" という子要素を持っている場合に、その電話番号を表示してみましょう。
<wr-for list="index" variable="x">
<wr-if condition='hasElement(x, "会社情報")'>
<wr-if condition='hasElement(x.会社情報, "電話番号")'>
<wr-->対象が見つかりました</wr-->
<p>%x.会社情報.電話番号%</p>
</wr-if>
</wr-if>
</wr-for>
まとめて hasElement(x, "会社情報.電話番号") としたいところですが、それはできません。2段階に分けてチェックしてください。
メソッドの有無を調べたい場合には hasMethod() の利用を検討してください。