xpath - Umbraco 8 - 使用 ContentAtXPath() 方法获取节点的子节点
问题描述
我一直在重构现有的 Umbraco 项目,以便在取回文档数据时使用更高性能的查询,因为之前所有内容都是使用 LINQ 返回的。我一直在使用 Umbraco 通过 XPaths 和 Examine 进行查询的组合。
我目前很难尝试使用该Umbraco.ContentAtXPath()
方法获取子文档。我想做的是根据我解析到该方法的路径获取子文档。这是我目前拥有的:
IEnumerable<IPublishedContent> umbracoPages = Umbraco.ContentAtXPath("//* [@isDoc]/descendant::/About [@isDoc]");
运行此返回“对象引用未设置为对象的实例”。错误并且无法确切地看到我哪里出错了(Umbraco 中这种查询形式的新手)。
理想情况下,我想增强查询以使用非 LINQ 方法进行排序,如此处所示。
解决方案
在 Umbraco 8 中查询 NuCache 非常快,仅被检查搜索击败。假设您使用的是 Models Builder,并且您的 About 页面是 Home 页面的子页面,您可以使用:
var homePage = (HomePage) Model.Root();
var aboutPage = homePage?.Children<AboutPage>().FirstOrDefault();
var umbracoPages = aboutPage.Children();
HomePage
您的主页文档类型别名在哪里,AboutPage
您的关于页面文档类型别名在哪里。
推荐阅读
- c++ - Double 到 uint64_t 的转换
- scrapy - 我可以使用 start_urls 来抓取 url 列表吗?
- java - java大脑教程JAX-RS错误设置
- r - R 生存包 - survreg 在使用大间隔时报告奇点
- intersection - Halcon - 加速路口
- c# - 如何将数据表转换成这样的csv格式
- julia - 从 Julia 调用 Python
- angular - 如何注入 NgbDateParserFormatter 的本机实现?
- hibernate - 在 Hibernate 事务中执行 jOOQ 语句
- html - 视频中的颜色变化 - HTML5