如何解决如何使用XSLT重组准备好进行主从实现的XML文件?
我是xslt转换的新手。
我有一个从数据库导出的xml文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="tbl_osinfo.xsd"
generated="2020-08-26T17:39:12">
<tbl_osinfo>
<ID>1</ID>
<os_name>Amazon Linux</os_name>
<os_version>2015.09 or later</os_version>
<os_architecture>64-bit</os_architecture>
</tbl_osinfo>
<tbl_osinfo>
<ID>10</ID>
<os_name>Microsoft Windows</os_name>
<os_version>10 Enterprise Edition</os_version>
<os_architecture>64-bit</os_architecture>
</tbl_osinfo>
<tbl_osinfo>
<ID>11</ID>
<os_name>Microsoft Windows</os_name>
<os_version>10 Professional Edition</os_version>
<os_architecture>64-bit</os_architecture>
</tbl_osinfo>
<tbl_osinfo>
<ID>12</ID>
<os_name>Microsoft Windows</os_name>
<os_version>7 Enterprise Edition</os_version>
<os_architecture>64-bit</os_architecture>
</tbl_osinfo>
<tbl_osinfo>
<ID>13</ID>
<os_name>Microsoft Windows</os_name>
<os_version>7 Enterprise Edition</os_version>
<os_architecture>32-bit</os_architecture>
</tbl_osinfo>
</dataroot>
由于我要为WPF应用程序制作一个由XML文件支持的Master Detail,因此我希望格式如下:
<tbl_osinfo>
<osinfo name="Amazon Linux">
<osversion name="2015.09 or later">
<os_architecture>64-bit</os_architecture>
</osversion>
</osinfo>
<osinfo name="Microsoft Windows">
<osversion name="7 Enterprise Edition">
<os_architecture>64-bit</os_architecture>
<os_architecture>32-bit</os_architecture>
</osversion>
<osversion name="10 Enterprise Edition">
<os_architecture>64-bit</os_architecture>
</osversion>
<osversion name="10 Professional Edition">
<os_architecture>64-bit</os_architecture>
</osversion>
</osinfo>
</tbl_osinfo>
转型要点:
- 我希望具有相同操作系统名称的每个数据行都成为一个节点。
- 对于每个不同版本名称的迭代,我希望它成为该单个节点下的子节点。
- 递归地将具有体系结构节点的版本作为子节点。
我遇到的问题: 我查看了xslt转换的几个示例和教程,它们都要求转换后的xml文件与原始文件相似或完全相同,xslt是否有可能通过共享相同值的节点枚举并将它们组合为一个单个节点?
预先感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。