У меня есть XML с дочерними узлами, которые я хочу, чтобы они отображались на уровне родительского уровня с использованием XSL. Мой XML не очень прост, и мои знания XSL не очень хороши. Я буду отличным, если кто-нибудь может предоставить мне решение.Перемещение дочернего узла на родительский уровень с использованием XML
Мой образец XML выглядит следующим образом:
<env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
<env:Body>
<DPSretrieveResponse
xmlns="https://tpvs.hmrc.gov.uk/dps">
<DPSdata
xmlns="http://www.govtalk.gov.uk/taxation/DPSwrapper/1">
<DPSheader>
<Service>PAYE</Service>
<EntityType>EmpRef</EntityType>
</DPSheader>
<CodingNoticesP6P6B FormType="P6B" IssueDate="2008-05-06" SequenceNumber="1375" TaxYearEnd="2009"
xmlns="http://www.govtalk.gov.uk/taxation/CodingNoticesP6P6B/2">
<EmployerRef>123/A6</EmployerRef>
<Name>
<Title>MR</Title>
<Forename>J V</Forename>
<Surname>Scanlon</Surname>
</Name>
<WorksNumber>SCA/466</WorksNumber>
<CodingUpdate>
<TaxCode>NT</TaxCode>
</CodingUpdate>
</CodingNoticesP6P6B>
</DPSdata>
</DPSretrieveResponse>
</env:Body>
</env:Envelope>
Что требуется, это:
<env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Body>
<DPSretrieveResponse
xmlns="https://tpvs.hmrc.gov.uk/dps">
<DPSdata
xmlns="http://www.govtalk.gov.uk/taxation/DPSwrapper/1">
<DPSheader>
<Service>PAYE</Service>
<EntityType>EmpRef</EntityType>
</DPSheader>
<CodingNoticesP6P6B FormType="P6B" IssueDate="2008-05-06" SequenceNumber="1375" TaxYearEnd="2009"
xmlns="http://www.govtalk.gov.uk/taxation/CodingNoticesP6P6B/2">
<EmployerRef>123/A6</EmployerRef>
<Name>
</Name>
<Title>MR</Title>
<Forename>J V</Forename>
<Surname>Scanlon</Surname>
<WorksNumber>SCA/466</WorksNumber>
<CodingUpdate>
<TaxCode>NT</TaxCode>
</CodingUpdate>
</CodingNoticesP6P6B>
</DPSdata>
</DPSretrieveResponse>
</env:Body>
</env:Envelope>
Просто, название, имя и фамилия под имя тега нужно показывать в том же уровне, что и имя ;
<Name>
</Name>
<Title>MR</Title>
<Forename>J V</Forename>
<Surname>Scanlon</Surname>
Любые советы приветствуются.
спасибо.
Что вы пробовали до сих пор, и как делает вывод, который вы» теперь вы теперь отличаетесь от того, что вам нужно? Не могли бы вы отредактировать вопрос, чтобы показать свой текущий XSLT? –
Если у вас есть один шаблон идентификации (чтобы скопировать все узлы), создайте второй, который выберет элемент 'Name' (возможно, префикс его с соответствующим пространством имен), содержащий только' '. Он переместит детей «Name» в место, где раньше был элемент «Name». –
helderdarocha
Кроме того, нам нужно знать, что _version_ XSLT вы используете. У вас есть доступ к версии 2.0 или более поздней версии, или вы ограничены только 1.0? –