明らかに、プロパティを呼び出すことはできますが、メソッドを呼び出しても、Drop から拡張されたクラスであっても何もしません。
XmlDocumentDrop クラスでこのようなことをしようとしています。
public string XPath
{
return xmlDoc.DocumentElement.SelectSingleNode(xpath).InnerText;
}
次に、DotLiquid テンプレートで。
{{ xmlDoc.XPath("//firstName") }}
これは何も返しません。
「CatchAll」メソッドを使用しようとしましたが、XPath を渡そうとしていますが、単語以外のすべての文字が取り除かれているようです。だから、これをやろうとしている:
{{ xmlDoc.//firstName }}
"firstName" を BeforeMethod に送信するだけです。
XPath を使用してテンプレートからデータにアクセスし、XML ドキュメントをテンプレート化しようとしています。必要なすべての XPath のプロパティを作成する以外に (理想的ではありません。ユーザーが開発者を関与させずに XML ドキュメントをテンプレート化できるようにするためです)、どのようなオプションがありますか?
フィルターを実行できるので、次のようにします。
{{ xmlDoc|xpath:"//firstName" }}
しかし、フィルタは文字列のみを受け取ります。つまり、生の XML を文字列として渡し、呼び出されるたびにこの XML を再解析することになりますが、これはあまり良くありません。
オプション?
編集:
カスタム タグも試してみましたが、結局、XML を文字列として渡し、毎回すべての XML を再解析しています。私が本当に必要としているのは、テンプレート内の XML ドキュメントへの参照と、XPath の文字列を渡す単一のメソッドを呼び出す機能です。