1
我是xslt的新手,我正在從事xml到xml的轉換工作。請爲下面的問題提供一個xslt解決方案。 輸入XML是如下:使用xslt將XML轉換爲XML,使用屬性名稱替換元素名稱
<root type="object">
<items type="array">
<item type="object">
<original_file_name type="string">filename-m.mp3</original_file_name>
<description type="string">some description text</description>
<created_at type="string">2017-02-20T20:52:52Z</created_at>
<metadata type="object">
<guest type="string">guestname here</guest>
<webInfo type="string">http://abc</webInfo>
<title type="string">title text testing</title>
<airDate type="string">2017-02-21</airDate>
</metadata>
<status type="string">live</status>
<asset_type type="string">video</asset_type>
<player_id type="string">391e099a718f4a62b44c78f97f85ecde</player_id>
<name type="string">title</name>
</item>
<item type="object">
<original_file_name type="string">filename-m.mp3111</original_file_name>
<description type="string">some description text test</description>
<created_at type="string">2015-02-20T20:52:52Z</created_at>
<metadata type="object">
<guest type="string">guestname here 1111</guest>
<webInfo type="string">http://abc</webInfo>
<a:item type="string" item="album description" xmlns:a="item">test description album</a:item>
<a:item type="string" item="album order" xmlns:a="item">106</a:item>
</metadata>
<status type="string">live</status>
<asset_type type="string">video</asset_type>
<player_id type="string">391e099a718f4a62b44c78f97f85ecdea</player_id>
<name type="string">title1</name>
</item>
</items>
</root>
輸出XML需要是如下:
<assets>
<item>
<original_file_name>filename-m.mp3</original_file_name>
<description>some description text</description>
<created_at>2017-02-20T20:52:52Z</created_at>
<guest>guestname here</guest>
<webInfo>http://abc</webInfo>
<title>title text testing</title>
<airDate>2017-02-21</airDate>
<status type="string">live</status>
<asset_type type="string">video</asset_type>
<player_id type="string">391e099a718f4a62b44c78f97f85ecde</player_id>
<name type="string">title</name>
</item>
<item>
<original_file_name>filename-m.mp3111</original_file_name>
<description>some description text test</description>
<created_at>2015-02-20T20:52:52Z</created_at>
<guest>guestname here 1111</guest>
<webInfo>http://abc</webInfo>
<album_description>test description album</album_description>
<album_order>106</album_order>
<status type="string">live</status>
<asset_type type="string">video</asset_type>
<player_id type="string">391e099a718f4a62b44c78f97f85ecdea</player_id>
<name type="string">title1</name>
</item>
</assets>
子元數據的節點被動態元素,元素名稱和編號將在每個子節點不同的元數據。 下面是輸出文件的更改:
- 替換資產根/項目
- 刪除元數據的元數據標籤和子節點成爲項目的直接孩子
- 當元數據的子節點有: item元素然後用屬性item =「album description」替換元素名稱 屬性值有空格,所以我們需要用下劃線替換空格。
我需要有點數的解決方案3.
謝謝
我得到一個錯誤消息」‘:’字符,十六進制值0x3A,不能包含在名稱「在行 –
它取決於您正在使用的xslt處理器。我在xalan和撒克遜人測試了它,它對兩者都有效。 – Lesiak
我在SSIS(Microsoft visual studio 2010)中使用XML任務。我不知道如何驗證xslt處理器 –