0

明らかに、プロパティを呼び出すことはできますが、メソッドを呼び出しても、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 の文字列を渡す単一のメソッドを呼び出す機能です。

4

1 に答える 1