2012-10-04 2 views
3

Sitecore reference говорить о некоторых атрибутов, которые можно использовать в запросе, в том числе @@ TemplateName, @@ Ид и @@ ParentId т.д.Работает ли атрибут @@ parentid в запросе Sitecore?

ParentID не похоже на работу - /sitecore/content//*[@@parentid!=''] никогда не возвращает никакого результата. В то время как /sitecore/content//*[@@templatename!=''] отлично работает. Версия Sitecore - 6.5 и 6.6.

Кто-нибудь мог запросить с @@ parentid? (Возможно, он использует таблицу Ancestor/Descendant, и мне не хватает данных - просто догадка)

ответ

5

Он пытается проанализировать значение как идентификатор GUID и сбой. Вместо этого попробуйте пустой GUID так:

/sitecore/content//*[@@parentid!='{00000000-0000-0000-0000-000000000000}'] 
+0

Круто спасибо. Но я 'm озадачен непустым действительным идентификатором сейчас. Нет результата с '/ sitecore/content // * [@@ parentid =' {CEA0F336-13DE-45CC-A0A7-5CA9C8961436} ']' где id - мой главный узел. Я хочу видеть все значения атрибутов, но Sitecore, похоже, не поддерживает атрибут xpath 'attribute ::' или любой другой способ выбора значения атрибута. – pellucid

+0

Выбирая '/ sitecore/content // *', вы по существу просматриваете каждый элемент в вашем дереве. Запрос Sitecore ограничивает результат, равный 100 элементам по умолчанию, и i Так случилось, что дети Дома не были в первых 100 результатах. Используя префикс 'fast:', ваш запрос будет переведен в SQL и, следовательно, увеличит вашу точность. Тем не менее, ни один из этих методов не будет столь же быстрым, как прямые прямые потоки Home напрямую с использованием '/ sitecore/content/Home/*' –

+0

Кроме того, что касается атрибутов, запрос Sitecore предназначен для выбора элементов, поэтому я не уверен, какие атрибуты вы пытаетесь выбрать. Если вы обращаетесь к полям элемента, вы можете получить к ним доступ так: '/ sitecore/content/Home/* [@ MyField = 'Some Value']' –

2
  • @@parentid работает только в быстром запросе.
  • В быстром запросе вы можете использовать только предка, не являющегося предком или самим собой (который не дает ошибки, он просто делает резервный тоже предок).
  • Также вы не можете использовать трубу | в быстром запросе, чтобы объединить результаты двух или более запросов.

Я не могу за жизнь мне понять, как это сделать «, дайте мне предок-или-самость текущего узла, чей родитель имеет идентификатор = {110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}.

Смежные вопросы