2

查询一:/sitecore/content/FR/Cabinet/New Category/Attributes//*[@@TemplateID = '{95793C69-3E37-4CEB-9AF4-FD88276D85AA}']

查询 2:/sitecore/content/FR/Cabinet/New Category/Child Category 1/Attributes//*[@@TemplateID = '{95793C69-3E37-4CEB-9AF4-FD88276D85AA}']

查询 1 有效,没有问题 - 查询 2 无效,说expected ::。有什么区别,除了一个更深一层。也碰巧文件夹中/Child Category 1/实际上没有任何孩子,而...attributes/New Category/Attributes

更新 - 所以看起来“孩子”是 Xpath 中的一个关键字......这里的解决方法是什么?

4

1 回答 1

5

您可以通过将其包装在哈希中来转义该类别:

/sitecore/content/FR/Cabinet/New Category/#Child Category 1#/ ...

这在选择字段包含空格的项目时也会派上用场:

... //*[@#My Spaced Out Field# = '%Hey Yo!%']

如果您正在动态构建查询,您可能需要考虑单独转义每个令牌、使用.AxesAPI 或使用 Lucene 选择项目。

于 2012-08-28T23:56:14.500 回答