У меня есть XML-файл, который выглядит следующим образом:XML изменение названия тега с содержанием тега
<MyObject>
<ID>1</ID>
<Name>Foo</Name1>
<Color>Blue</Color>
...
<CustomFields>
<CustomField>
<Name>cf1</Name>
<Type>boolean</Type>
<Value>true</Value>
</CustomField>
<CustomField>
<Name>cf2</Name>
<Type>interger</Type>
<Value>1</Value>
</CustomField>
...
</CustomFields>
</MyObject>
Проблема в том, что, когда я импортировать его в Excel, например, Excel создает мне 2 строки:
ID , Name , Color , CustomField/Name , CustomField/Type , CustomField/Value
1 , Foo , Blue , cf1 , boolean , true
1 , Foo , Blue , cf2 , integer, 1
Я хотел бы иметь уникальные столбцы на пользовательские поля. Итак, моя идея состояла в том, чтобы преобразовать исходный XML, изменив имя тега «CustomField» (без «s»), чтобы сделать его уникальным. Я решил объединить «CustomField» с содержимым тега «Name».
Итак, я превратит
<CustomField>
<Name>cf1</Name>
<Type>boolean</Type>
<Value>true</Value>
</CustomField>
<CustomField>
<Name>cf2</Name>
<Type>interger</Type>
<Value>1</Value>
</CustomField>
В
<CustomField_cf1>
<Name>cf1</Name>
<Type>boolean</Type>
<Value>true</Value>
</CustomField_cf1>
<CustomField_cf2>
<Name>cf2</Name>
<Type>interger</Type>
<Value>1</Value>
</CustomField_cf2>
Проблема заключается в том, что я понятия не имею, как изменить некоторые выбранное имя тега со значением суб-узла.
Я просмотрел XSLT, но, очевидно, у меня нет необходимого уровня, чтобы делать такую вещь. Итак, я открыт для любого решения.
Thx
Thx, that works great! – Dessoul