Php 使用XSLT从未知XML创建格式良好的嵌套表
给我的任务: 我的老板希望我创建一个XSLT,它接受未知结构的XML,并将其放入一个嵌套表(标记名为表头),尽可能不重复表头。我几乎能得到他想要的东西(桌子) 问题: 我现在只使用XSLT几天(已经学习了一些教程并使用了一点),所以如果有人能告诉我在哪里可以找到帮助我解决问题的信息,我将不胜感激 环境数据:我正在使用XSLT和PHP(DOM对象)。我的老板希望我成为公司的XSLT专家,因此如果可以通过纯XSLT实现,我将不胜感激 附加信息:应响应者的请求,附加信息(代码)如下。任务是将类似于下面的XML片段的内容转换为下表以供显示。不幸的是,我所拥有的代码目前处于不断变化的状态,因此我不会发布它(如果当我再次稳定它时问题仍然存在,我将发布它) XML片段:Php 使用XSLT从未知XML创建格式良好的嵌套表,php,xml,xslt,dom,xslt-1.0,Php,Xml,Xslt,Dom,Xslt 1.0,给我的任务: 我的老板希望我创建一个XSLT,它接受未知结构的XML,并将其放入一个嵌套表(标记名为表头),尽可能不重复表头。我几乎能得到他想要的东西(桌子) 问题: 我现在只使用XSLT几天(已经学习了一些教程并使用了一点),所以如果有人能告诉我在哪里可以找到帮助我解决问题的信息,我将不胜感激 环境数据:我正在使用XSLT和PHP(DOM对象)。我的老板希望我成为公司的XSLT专家,因此如果可以通过纯XSLT实现,我将不胜感激 附加信息:应响应者的请求,附加信息(代码)如下。任务是将类似于下面
<root>
<request>
<details>
<columnname>name1</columnname>
<operator></operator>
<value>val</value>
<seq>1</seq>
</details>
</request>
<request>
<details>
<columnname>name2</columnname>
<operator>OP</operator>
<value>val</value>
<seq>2</seq>
</details>
</request>
<request>
<details>
<columnname>name3</columnname>
<value>val</value>
<seq>3</seq>
</details>
</request>
<response>
<details>
<columnname>name4</columnname>
<value>val</value>
<seq>4</seq>
</details>
</response>
</root>
名称1
瓦尔
1.
姓名2
操作
瓦尔
2.
名字3
瓦尔
3.
名字4
瓦尔
4.
所需输出
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>root</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>request</th>
<th>response</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>details</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>columnname</th>
<th>operator</th>
<th>value</th>
<th>seq</th>
</tr>
<tr>
<td>name1</td>
<td></td>
<td>val</td>
<td>1</td>
</tr>
<tr>
<td>name2</td>
<td>OP</td>
<td>val</td>
<td>2</td>
</tr>
<tr>
<td>name3</td>
<td></td>
<td>val</td>
<td>3</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>details</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>columnname</th>
<th>value</th>
<th>seq</th>
</tr>
<tr>
<td>name4</td>
<td>val</td>
<td>4</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<?xml version="1.0" encoding="UTF-8"?>
<ul>
<li>root<ul>
<li>parent<ul>
<li>child<ul>
<li>string</li>
<li>number</li>
<li>grandchild<ul>
<li>string</li>
<li>substring</li>
<li>number</li>
</ul>
</li>
<li>date</li>
</ul>
</li>
<li>nephew<ul>
<li>string</li>
</ul>
</li>
</ul>
</li>
<li>uncle<ul>
<li>niece<ul>
<li>string</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
根
要求
响应
细节
列名
操作人员
价值
序号
名称1
瓦尔
1.
姓名2
操作
瓦尔
2.
名字3
瓦尔
3.
细节
列名
价值
序号
名字4
瓦尔
4.
对michael的回应。hor257k:看起来像这样
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>root</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>parent</th>
<th>uncle</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>child</th>
<th>nephew</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>string</th>
<th>number</th>
<th>grandchild</th>
<th>date</th>
</tr>
<tr>
<td>A</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>B</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>C</td>
<td>1</td>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>string</th>
<th>substring</th>
<th>number</th>
</tr>
<tr>
<td>DD</td>
<td>EE</td>
<td>33</td>
</tr>
</table>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>2</td>
<td></td>
<td></td>
</tr>
<tr>
<td>F</td>
<td></td>
<td></td>
<td>2015-02-12</td>
</tr>
</table>
</td>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>string</th>
</tr>
<tr>
<td>G</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>niece</th>
</tr>
<tr>
<td>
<table border="1" style="border-collapse:collapse;width:100%">
<tr>
<th>string</th>
</tr>
<tr>
<td>H</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
根
父母亲
叔叔
小孩
侄子
一串
数
孙子
日期
A.
B
C
1.
一串
子串
<root>
<parent>
<child>
<string>A</string>
<string>B</string>
</child>
<child>
<string>C</string>
<number>1</number>
<number>2</number>
<grandchild>
<string>DD</string>
<substring>EE</substring>
<number>33</number>
</grandchild>
</child>
</parent>
<parent>
<child>
<string>F</string>
<date>2015-02-12</date>
</child>
<nephew>
<string>G</string>
</nephew>
</parent>
<uncle>
<niece>
<string>H</string>
</niece>
</uncle>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<ul>
<li>root<ul>
<li>parent<ul>
<li>child<ul>
<li>string</li>
<li>number</li>
<li>grandchild<ul>
<li>string</li>
<li>substring</li>
<li>number</li>
</ul>
</li>
<li>date</li>
</ul>
</li>
<li>nephew<ul>
<li>string</li>
</ul>
</li>
</ul>
</li>
<li>uncle<ul>
<li>niece<ul>
<li>string</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>