显然,您可以调用属性,但调用方法不会做任何事情,即使在从 Drop 扩展的类上也是如此。
我试图在我的 XmlDocumentDrop 类中做这样的事情。
public string XPath
{
return xmlDoc.DocumentElement.SelectSingleNode(xpath).InnerText;
}
然后在我的 DotLiquid 模板中。
{{ xmlDoc.XPath("//firstName") }}
这不返回任何内容。
我曾尝试使用“CatchAll”方法,但我试图通过 XPath,它似乎去除了所有非单词字符。因此,尝试这样做:
{{ xmlDoc.//firstName }}
只需将“firstName”发送到 BeforeMethod。
我正在尝试模板化 XML 文档,使用 XPath 从模板访问数据。没有为我可能需要的每个 XPath 创建属性(不理想,因为这个想法是让用户在不需要开发人员的情况下模板化 XML 文档),我有什么选择?
我可以做一个过滤器,所以是这样的:
{{ xmlDoc|xpath:"//firstName" }}
但是过滤器只接受一个字符串,这意味着我将原始 XML 作为字符串传递,然后在每次调用它时重新解析这个 XML,这不是很好。
选项?
编辑:
我也尝试了一个自定义标签,但最后,我仍然将 XML 作为字符串传递,并且每次都重新解析所有 XML。我真正需要的是在我的模板中引用 XML 文档,以及调用单个方法、传入 XPath 字符串的能力。