Недавно я начал работать над XSLT. У меня есть требование группировать значения узлов на основе поля id. Однако поле id может быть дублирующимся. Например, скажем ниже, это структура XML.Как объединить общие значения id в XSLT
<ProductResults> \t
<ProductResult> \t
\t \t <ProductId>1000</ProductId>
\t \t <Location>Bangalore</Location>
\t \t <ModuleNumber>02</ModuleNumber>
<StoreId>1234<StoreId> \t \t \t \t
</ProductResult>
<ProductResult> \t \t
\t \t <ProductId>2000</ProductId>
\t \t <ModuleNumber>03</ModuleNumber>
\t \t <Location>Bangalore</Location>
<StoreId>1234<StoreId> \t
</ProductResult>
<ProductResult> \t
\t \t <ProductId>1000</ProductId>
\t \t <ModuleNumber>01</ModuleNumber>
\t \t <Location>Mumbai</Location>
<StoreId>1234<StoreId> \t
</ProductResult>
<ProductResult> \t \t
\t \t <ProductId>4000</ProductId>
\t \t <ModuleNumber>02</ModuleNumber>
\t \t <Location>Kolkata</Location>
<StoreId>1234<StoreId> \t
</ProductResult>
<ProductResult> \t \t
\t \t <ProductId>1000</ProductId>
\t \t <ModuleNumber>03</ModuleNumber>
\t \t <Location>Chennai</Location>
<StoreId>1234<StoreId> \t
</ProductResult>
</ProductResults>
Если вы заметили, то PRODUCTID 1000 повторяется трижды. Я должен написать XSLT для производства ниже результата.
{
"StoreId": "1234",
"Locations": [
{
"ProductId": "1000",
"Locations": [
{
"Location": "Bangalore",
"ModuleNumber": "02"
},
{
"Location": "Mumbai",
"ModuleNumber": "01"
},
{
"Location": "Chennai",
"ModuleNumber": "03"
}
]
},
{
"ProductId": "2000",
"Locations": [
{
"Location": "Bangalore",
"ModuleNumber": "03"
}
]
},
{
"ProductId": "4000",
"Locations": [
{
"Location": "Kolkata",
"ModuleNumber": "02"
}
]
}
]
}
Поскольку поле ProductID повторяется, я не могу использовать цикл Еогеасп непосредственно, который создает дополнительный блок кода для той же ProductID. Любые предложения по этому вопросу ?.
Заранее спасибо.
Это * группировка * вопрос - выполните поиск. Обратите внимание, что для XSLT 1.0 или 2.0 разные ответы. –