Моя база XML, каккак изменить имя узла и скопировать данные этого узла в XML-другому, используя XSLT
<?xml version="1.0" encoding="iso-8859-1"?>
<Report version="1.0">
<sourceName Identification="xyz"/>
<sourcesys Identification="mycomp">
<Manager>
<ManagerNo>1023114455</ManagerNo>
<Address>Delhi,India</Address>
<Currency>
<CurrencyType>Rupee</CurrencyType>
</Currency>
</Manager>
<Manager>
<ManagerNo>236784455</ManagerNo>
<Address>California,USA</Address>
<Currency>
<CurrencyType>Dollar</CurrencyType>
</Currency>
</Manager>
</sourcesys>
</Report>
Я хочу, чтобы преобразовать этот XML в следующий один
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ManagerDetails xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ManagerDetail>
<ManagerNo>1023114455</ManagerNo>
<Address>
<PermenantAdd>California,USA</PermenantAdd>
</Address>
<CurrencyID>Rupee</CurrencyID>
</ManagerDetail>
<ManagerDetail>
<ManagerNo>236784455</ManagerNo>
<Address>
<PermenantAdd>Delhi,India</PermenantAdd>
</Address>
<CurrencyID>Dollar</CurrencyID>
</ManagerDetail>
</managerDetails>
Здесь есть отображение тегов:
- sourcesys = managerDetails
- Менеджер = Управление rDetail
- ManagerNo = ManagerNo
- Адрес = PermenantAdd
- CurrencyType = CurrencyID
Как бы вы сделать это с помощью XSLT?
Является ли ваша базовая XML определенно правильной? Корневым элементом является ** a1: Report **, что означает, что он является частью пространства имен, но не отображается декларация пространства имен, что означает, что это неверно. Кроме того, элемент ** sourceName ** не имеет дочерних элементов в базовом XML, но на выходе, когда он преобразован в ** ManagerDetails **, он имеет дочерние элементы. –
@TimC: извините, я забыл указать пространство имен a1: Report. вы можете считать, что он определен на время. Я сожалею о неправильном сопоставлении SourceName. Я обновил вопрос, пожалуйста, проверьте. и, пожалуйста, помогите мне написать xslt, поскольку я впервые использую xslt. совершенно новый для xsl/xml/xslt – Ganeshkumar