Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XSL将XML嵌套数据转换为平面概览表_Xml_Xslt_Html Table - Fatal编程技术网

使用XSL将XML嵌套数据转换为平面概览表

使用XSL将XML嵌套数据转换为平面概览表,xml,xslt,html-table,Xml,Xslt,Html Table,我有如下xml数据: <rootNode> <subNode name="sn1"> <node name="field2" value="23"/> <node name="field4" value="24"/> </subNode> <subNode name="sn2"> <node name="field2" value="39"/>

我有如下xml数据:

<rootNode>
    <subNode name="sn1">
        <node name="field2" value="23"/>
        <node name="field4" value="24"/>
    </subNode>
    <subNode name="sn2">
        <node name="field2" value="39"/>
    </subNode>
    <subNode name="sn3">
        <subNode name="f1">
            <node name="field2" value="23"/>
            <node name="field4" value="24"/>
        </subNode>
        <node name="field2" value="23"/>
        <node name="field8" value="24"/>
    </subNode>
</rootNode>
因此,我必须在每个“子节点”中搜索每个可能的“节点”,并为每个节点创建一行。然后,如果有顶部子节点的条目,则显示该值


我至少得到了数据中所有元素的列表。但这份清单并不清晰

我找到了,但无法将其应用于我的需要


有什么建议吗?

XSLT将一种形式的XML从一种形式的XML转换为另一种形式的XML。它不会像您自己显示的那样将XML转换为格式化显示。为此,您需要使用FOP之类的工具

+-----------+-----+-----+-----+
| Field     | sn1 | sn2 | sn3 |
|-----------+-----+-----+-----+
|field2     |  23 |  39 |  23 |
|-----------+-----+-----+-----+
|field4     |  24 | n/a | n/a |
|-----------+-----+-----+-----+
|field8     | n/a | n/a |  24 |
|-----------+-----+-----+-----+
|f1->field2 | n/a | n/a |  23 |
|-----------+-----+-----+-----+
|f1->field4 | n/a | n/a |  24 +
+-----------+-----+-----+-----+
<xsl:for-each select="subNode//node()">
    <tr>
        <td><xsl:value-of select="@name"/></td>
    </tr>
</xsl:for-each>