我目前有一個XML檔案,需要轉換成另外一個結構的XML,原XML檔案其中的某些值會復用到新的XML檔案中,但是會調整到其他的節點中,并且原來的節點名稱也會重命名。
因為XML結構復雜,源檔案的節點就有幾百個,新的XML檔案節點也會多很多,創建java物件也會很復雜,所以請問一下有什么簡單有效的方法做XML轉換的嗎?
類似于原XML節點 對應 新XML節點這種方法?
假設結構為:
<A>
<A1> </A1>
<A2> </A2>
<B>
<B_summary> </B_summary>
<B1> </B1>
<B2> </B2>
</B>
<C>
<C_summary> </C_summary>
<C1> </C1>
<C2> </C2>
</C>
</A>
將要轉換成:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<r1>取A1值</r1>
<r2>取A2值</r2>
<r3>取B_summary值</r3>
<r4>取C_summary值</r4>
<A>
<B>
<NEW_B1>B1的值 </NEW_B1>
<NEW_B2>B2的值 </NEW_B2>
</B>
<C>
<NEW_C1>C1的值 </NEW_C1>
<NEW_C2>C2的值 </NEW_C2>
</C>
</A>
......
</root>
uj5u.com熱心網友回復:
個人會采取依賴檔案的方式來進行轉換,簡單來說就是在轉換成新的xml結構之前我會自己撰寫一個轉換結構檔案,比如
root為轉換后的標簽名它會有
parent: 是否存在父級
value: 值
oldTag: 舊的標簽名
等等這些引數,那我轉換的時候只需要讀取組態檔然后進行遞回轉換就行了,也就說,結構我自己控制,程式只做轉換
當然這種方式只適用與結構可能會不斷變化,或者增加新的標簽,
如果你對轉換是有一種特定的規則,并且這個規則是不變的,那用這種方式就顯得麻煩了
uj5u.com熱心網友回復:
看了一下,其實也不難。首先就是新結構體包含舊結構體,所以做一個新結構體,里面包含舊結構體
然后,舊結構體部分名字改變,所以,如果用注解的話,修改舊結構體的注解,如果沒用注解,自己做個converter,讀取到特定的舊標簽名就做一個變成新標簽名的轉換
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/264958.html
標籤:Java相關
上一篇:RC4加解密演算法工具類
下一篇:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: Y
