Мне нужно преобразовать XML с помощью xslt.
Логика:
Разделить родительский элемент, если родительский адрес имеет другой дочерний адрес, и добавить порядковый номер с родительским именем.Также нужен номер строки для ребенка.Здесь у нас может быть количество родительских узлов, и у каждого родительского узла может быть больше дочерних узлов.
Я пробовал множество способов добиться этого, и я застрял с созданием порядкового номера в foreach.Так что любой может попытаться дать решение для этого.
Исходный XML, как показано ниже:
<Data>
<Parent>
<Name>P1</Name>
<Child>
<Name>CName1</Name>
<Address>Address1</Address>
</Child>
<Child>
<Name>CName2</Name>
<Address>Address2</Address>
</Child>
<Child>
<Name>CName3</Name>
<Address>Address1</Address>
</Child>
</Parent>
<Parent>
<Name>P2</Name>
<Child>
<Name>CName1</Name>
<Address>Address1</Address>
</Child>
</Parent>
</Data>
Целевой XML должен быть следующим:
<Data>
<Parent>
<Name>P1_1</Name>
<Address>Address1</Address>
<Child>
<LineNumber>1</LineNumber>
<Name>CName1</Name>
</Child>
<Child>
<LineNumber>2</LineNumber>
<Name>CName3</Name>
</Child>
</Parent>
<Parent>
<Name>P1_2</Name>
<Address>Address2</Address>
<Child>
<LineNumber>1</LineNumber>
<Name>CName2</Name>
</Child>
</Parent>
<Parent>
<Name>P2_1</Name>
<Address>Address1</Address>
<Child>
<LineNumber>1</LineNumber>
<Name>CName1</Name>
</Child>
</Parent>
</Data>