我有幾個帶有數據的文件,我想將一些節點分組並製作一個文件。我只給出了2個示例文件,但它可能很多。輸入文件以包含(list.xml)的形式列在xml文件中。結合使用XSLT製作一個文件的不同文件中的節點
基本上,分組應該根據每個文件進行,每個文件都應該列爲該特定功能區域的節點。
這可能與XSLT有關嗎?可能有多個轉換?
文件列表:list.xml
<?xml version="1.0" encoding="UTF-8"?>
<index xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="xml/models/1c8dca64-8b40-4e58-8581-5104f5ca3f3e.xml"/>
<xi:include href="xml/models/7f10e39d-ca8c-4c17-9a0f-2dcbceaaed51.xml"/>
<xi:include href="xml/models/2d90b9b4-793c-4d8b-9e06-0a93dfa738a2.xml"/>
<xi:include href="xml/models/4ee7085e-8241-4dae-a095-38ede5fd7fb0.xml"/>
</index>
輸入文件01:1c8dca64-8b40-4e58-8581-5104f5ca3f3e.xml
<model>
<contains>
<vertex>
<functionalarea>Supply Chain</functionalarea>
<breakdowns>
<model>34c1e701-5a70-4493-b877-38624348947c</model>
</breakdowns>
</vertex>
<vertex>
<functionalarea>Supply Chain</functionalarea>
<breakdowns>
<model>25a39e71-aa59-4f63-9c09-8cc4e36bae72</model>
</breakdowns>
</vertex>
<vertex>
<functionalarea>Planning</functionalarea>
<breakdowns>
<model>45c0d6c3-a910-4050-b10e-f17eb7276c44</model>
</breakdowns>
</vertex>
</contains>
</model>
輸入文件02:7f10e39d- ca8c-4c17-9a0f-2dcbceaaed51.xml
<model>
<contains>
<vertex>
<functionalarea>Supply Chain</functionalarea>
<breakdowns>
<model>58a77718-1e95-408b-a6ae-f185348ec310</model>
</breakdowns>
</vertex>
<vertex>
<functionalarea>Planning</functionalarea>
<breakdowns>
<model>87767baa-bab9-46dd-80d8-a0d0c3993429</model>
</breakdowns>
</vertex>
<vertex>
<functionalarea>Execution</functionalarea>
<breakdowns>
<model>f21aef69-9772-49bd-b6c1-4f3e55fc3887</model>
</breakdowns>
</vertex>
</contains>
</model>
需要的輸出
<tree>
<node>
<name>Supply Chain</name>
<children>
<child>34c1e701-5a70-4493-b877-38624348947c</child>
<child>25a39e71-aa59-4f63-9c09-8cc4e36bae72</child>
<child>58a77718-1e95-408b-a6ae-f185348ec310</child>
</children>
</node>
<node>
<name>Planning</name>
<children>
<child>45c0d6c3-a910-4050-b10e-f17eb7276c44</child>
<child>87767baa-bab9-46dd-80d8-a0d0c3993429</child>
</children>
</node>
<node>
<name>Execution</name>
<children>
<child>f21aef69-9772-49bd-b6c1-4f3e55fc3887</child>
</children>
</node>
</tree>
可能重複[如何使用xsl合併多個xml文件?](http://stackoverflow.com/questio ns/9210134/how-to-merge-multiple-xml-files-using-xsl) – Rao
您已經爲[xslt-1.0]和[xslt-2.0]添加了標籤。你實際使用哪個? –
您有兩個選擇,您可以使用XInclude,只需在解析器/ XSLT處理器使用的解析器中啓用XInclude處理,然後由XSLT處理的輸入將不包含'xi:include'元素,而是包含引用的內容和你可以簡單地將它分組。或者,您可以使用例如'document(index/xi:include/@ href)'拉入那些引用的文件,然後使用分組。至於分組,請參閱https://www.w3.org/TR/xslt20/#grouping-examples。 –