Пример ввода XML-файлов и ожидаемого вывода внизу, нужна помощь для группировки на основе количества дочерних элементов.XQuery (XPath) для подсчета дочерних элементов и группы на основе номера
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
<Column>
<ColumnOrder>3</ColumnOrder>
<ColLabel><![CDATA[terst]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
<Column>
<ColumnOrder>3</ColumnOrder>
<ColLabel><![CDATA[terst]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
</DashboardXML>
<DashboardXML>
<Column>
<ColumnOrder>1</ColumnOrder>
<ColLabel><![CDATA[test1]]></ColLabel>
</Column>
<Column>
<ColumnOrder>2</ColumnOrder>
<ColLabel><![CDATA[t1est]]></ColLabel>
</Column>
</DashboardXML>
Выше выборочные XML в качестве входных данных и ниже является XQuery:
for $b in /DashboardXML where count($b/Column) > 0 order by count($b/Column) return <li>{count($b/Column)} </li>
Запрос дает ниже вывод (образец):
<li>3</li>
<li>3</li>
<li>2</li>
<li>4</li>
<li>2</li>
Теперь вопрос в том, как группы, например, ниже:
2 = 2 (counts)
3 = 2 (counts)
4 = 1 (counts)
Пожалуйста, отправьте код и введите его как [SSCCE] (http://sscce.org), чтобы мы могли воспроизвести его. Ваш XML недействителен (отсутствует корневой элемент) и не соответствует ожидаемому результату. Либо отправьте исходный документ где-нибудь, либо сопоставьте ожидаемый вывод с предоставленным вводом. Вы также должны указать, какую версию и реализацию XQuery вы используете, поскольку XQuery 3.0 знает, что предложение 'group by' XQuery 1 не знает. –
У меня есть обновление, как вы сказали - Спасибо – user3130446
Вопрос выглядит отлично. У вас есть XQuery 3.0-совместимый процессор запросов, поэтому я решил ваш вопрос? Тогда вы можете отметить это как ответ (галочка слева от вопроса). –