【发布时间】:2017-03-20 12:50:25
【问题描述】:
我是 xslt 的新手,我正在研究 xml 到 xml 的转换。请为我提供以下问题的 xslt 解决方案。 输入xml如下:
<root type="object">
<items type="array">
<item type="object">
<embed_code type="string">abcdef</embed_code>
<description type="string">some description text</description>
<created_at type="string">2017-02-20T20:52:52Z</created_at>
<metadata type="object">
<guest type="string">Gary</guest>
<webinfo type="string">www.webinfotest.com</webInfo>
<title type="string">Practical Advice</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">
<embed_code type="string">vwxyz</embed_code>
<description type="string">some description text test</description>
<created_at type="string">2015-02-20T20:52:52Z</created_at>
<metadata type="object">
<scripture>Roman</scripture>
<theme>Obeying those in authority</theme>
</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>
元数据的子节点是动态的,每个元数据的子节点的元素名称和元素个数会有所不同。 embed_code 是一个具有唯一值的元素。 我需要三个元素作为项目 1 的子项。embed_code、2.metadata_name、3.metadata_value。 metadata_name 元素将具有元数据子元素的元素名称。 metadata_value 元素将具有元数据子元素的值。
输出xml需要如下:
<metadata>
<item>
<embed_code>abcdef</embed_code>
<metadata_name>guest</metadata_name>
<metadata_value>Gary</metadata_value>
</item>
<item>
<embed_code>abcdef</embed_code>
<metadata_name>webinfo</metadata_name>
<metadata_value>www.webinfotest.com</metadata_value>
</item>
<item>
<embed_code>abcdef</embed_code>
<metadata_name>title</metadata_name>
<metadata_value>Practical Advice</metadata_value>
</item>
<item>
<embed_code>abcdef</embed_code>
<metadata_name>airdate</metadata_name>
<metadata_value>2017-02-21</metadata_value>
</item>
<item>
<embed_code>vwxyz</embed_code>
<metadata_name>scripture</metadata_name>
<metadata_value>Roman</metadata_value>
</item>
<item>
<embed_code>vwxyz</embed_code>
<metadata_name>theme</metadata_name>
<metadata_value>Obeying those in authority</metadata_value>
</item>
</metadata>
【问题讨论】:
-
能否添加您目前拥有的 XSLT?