注意:這不是 Merge 2 XML files based on attribute values using XSLT? 的重複,但是它是其擴展。由於後面的輸入文件使用XSLT根據屬性值合併2個XML文件(包括節點屬性)
file1.xml
<config>
<state version="10">
<root value="100" group="5">
<leaf number = "2"/>
</root>
<root value="101" group="6" overrideAttr="oldval">
<leaf number = "3"/>
</root>
</state>
</config>
file2.xml
<config>
<state version="10">
<root value="100" group="5">
<leaf number = "6"/>
</root>
<root value="101" group="6" overrideAttr="newval" addtionalAttr="hello">
<leaf number = "4"/>
</root>
</state>
</config>
我想有這樣的Output.xml
<config>
<state version="10">
<root value="100" group="5">
<leaf number = "2"/>
<leaf number = "6"/>
</root>
<root value="101" group="6" overrideAttr="newval" addtionalAttr="hello">
<leaf number = "3"/>
<leaf number = "4"/>
</root>
</state>
</config>
所需擴展名是
- 屬性(例如overrideAttr)關於「相同的節點」(例如元件與值根=「101」和基團=「6」)應覆蓋
- 新屬性(例如addtionalAttr)應加
可以這樣來實現由xsl?
** 1 **什麼定義「相同」的節點? - ** 2。**請說明是否使用XSLT 1.0或2.0。 –
> 1.什麼定義了「相同」節點? 查看上述線程的「解決方案」 > 2。請指出是否使用XSLT 1.0或2.0 無論javax.xml.transform。TransformerFactory支持 – Clemens