背景のビット:
こんにちは、みんな、
MVC アプリケーション用に PHP でルーターを作成していて、構造を XML にすることにしました。システム内のすべての有効なルート (ページ) と、関連するコントローラーとアクションを含む XML ファイルがあります。
また、URI の末尾に変数があるかどうかを示す「param」と、それを割り当てる変数名があります (わかりにくい名前です!!)。
私がやっていることは、REQUEST_URI を見て、PHP の爆発関数を使用して、それを「ルート」要素の配列に変換し、それに対してクエリを作成することです。
サンプル XML を次に示します。
<routes>
<route>
<url>blog</url>
<params>
<controller>blogController</controller>
<action>indexAction</action>
</params>
<route>
<url>entry</url>
<params>
<controller>blogController</controller>
<action>entryAction</action>
<param>entryId</param>
</params>
</route>
</route>
</routes>
作成中のクエリは次のとおりです。
/routes/route/url[text()="blog"]/../route/url[text()="entry"]/..
これは、PHP の XPath では常に 0 ノードを返すように見えますが、オンライン式テスターを使用すると、エントリ ルートが一致します。
誰が何がうまくいかないのか説明できますか? PHP の Xpath パーサーはこの構文を理解しますか? ::parent* メソッドも試しました
乾杯!