XSLT が引数を PHP 関数に渡す方法に問題があります。<xsl:value-of select="php:function('form::validate_add',@name,type,message)" />
属性名、要素タイプ、および要素メッセージを php 関数に渡すために使用していますが、渡される引数は、私のニーズにとって役に立たない情報を含む大きな配列です。
XML:
<element name='text2-1'>
<type>required</type>
<message>The field Enter Text is required</message>
</element>
<element name='textarea'>
<type>required</type>
<message>The textarea is required</message>
</element>
XSLT:
<xsl:for-each select="element">
<xsl:value-of select="php:function('form::validate_add',@name,type,message)" />
</xsl:for-each>
PHP:
public static function validate_add($name, $type, $message=NULL) {
#tmp
print_r($name);
}
戻る:
Array
(
[0] => DOMAttr Object
(
[name] => name
[specified] => 1
[value] => text2-1
[ownerElement] => (object value omitted)
[schemaTypeInfo] =>
[nodeName] => name
[nodeValue] => text2-1
[nodeType] => 2
[parentNode] => (object value omitted)
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[attributes] =>
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] => name
[baseURI] =>
[textContent] => text2-1
)
)
したがって、配列の「値」キーは、私が求めている正しい値であるように見えます。配列全体を渡し、PHP 関数で配列から正しい値を抽出するのではなく、この引数を直接渡す方法はありますか? PHP 関数を変更したり、新しい関数を追加したりしたくありません。