我想根據某個節點的不同屬性拆分一個XML文件,創建單獨的XML文件,所有文件都在文件頂部有相同的節點,然後是節點+屬性及其基礎內容,直到此節點結束。根據節點屬性將XML文件拆分成不同的XML文件
所有分離的XML文件都需要以類似的末端節點結束。
示例XML文件:
<?xml version=""1.0"" encoding=""UTF-8""?>
<node1>
<node2>
<node3 attribute='1'>item</node3>
<node3 attribute='2'>item</node3>
<node3 attribute='3'>item</node3>
</node2>
<node6 attribute='1'>
<node7>item = (node3 attribute2)</node7>
<node8>item = (node3 attribute3)</node8>
</node6>
<node6 attribute='2'>
<node9>item = (node3 attribute1)</node9>
<node10>item = (node3 attribute2)</node10>
</node6>
</node1>
從這個例子,我想用node6的屬性是創建一個新的XML文件的斷點。 在2個XML文件得到的看起來像這樣:
分居XML 1:
<?xml version=""1.0"" encoding=""UTF-8""?>
<node1>
<node2>
<node3 attribute='1'>item</node3>
<node3 attribute='2'>item</node3>
<node3 attribute='3'>item</node3>
</node2>
<node6 attribute='1'>
<node7>item = (node3 attribute2)</node7>
<node8>item = (node3 attribute3)</node8>
</node6>
分居XML 2:
<?xml version=""1.0"" encoding=""UTF-8""?>
<node1>
<node2>
<node3 attribute='1'>item</node3>
<node3 attribute='2'>item</node3>
<node3 attribute='3'>item</node3>
</node2>
<node6 attribute='2'>
<node9>item = (node3 attribute1)</node9>
<node10>item = (node3 attribute2)</node10>
</node6>
</node1>
我一直在尋找,並與所有這些答案的工作,但他們沒有幫助我找到如上所述的正確的代碼。
https://stackoverflow.com/questions/30374533/split-xml-files-newbie
How to split an xml file in vb
Splitting Xml Document according to node
有人可以幫我找出什麼做的最好的方式,這是?
你熟悉XSLT?它可以爲你做這項工作,例如見http://stackoverflow.com/questions/5578602/how-to-filter-nodes-in-xml-using-xslt。我也是一名VB程序員,但我不會推薦使用這種或任何其他類似的編程語言來完成這種類型的任務(除非你有非常緊湊的時間表,這迫使你玩弄骯髒的技巧,而不是生產常規解決方案)。我建議你檢查XSLT並使用它來代替VB。這是適合工作的工具,所以你可以用較少的努力獲得結果。 – miroxlav
感謝信息miroxlav。我很遺憾完全不熟悉XSLT。我的目標是爲其他用戶編寫Windows Forms程序,以便能夠使用此程序拆分其XML文件。是否有可能在VB Windows窗體內實現XSLT程序? – Woudi