2012-03-06 124 views
0

我收到的XML看起來像這樣,使用XMLBeans的解析它:如何將xml名稱空間添加到Java中的非根元素?

<reply xmlns="http://www.xmlisfun.com/abc/def/1.0"> 
    <item-list> 
     <item> 
      <item-data>data</item-data> 
     </item> 
    </item-list> 
</reply> 

有一個名爲ItemListReplyType所導入的模式複雜類型。

由於有人在模式定義中混淆,XMLBean分析的對象將無法正確生成ItemListReplyType對象。 ItemListReplyType對象總是會說它不包含任何「item」對象。這是由於一些命名空間衝突。我注意到,當我解析以下內容時,我能夠從ItemListReplyType對象的代碼中正常檢索對象數組(數組不是空 - 「item」對象按預期方式存在)。

<reply xmlns="http://www.xmlisfun.com/abc/def/1.0"> 
    <item-list> 
     <prefix:item xmlns:prefix="http://www.xmlisfun.com/particular_namespace"> 
      <prefix:item-data>data</prefix:item-data> 
     </prefix:item> 
    </item-list> 
</reply> 

不用說,正確的解決方案是修復對模式所做的破解並重新生成所有的XMLBeans對象。然而,一年前在項目建立在所有這些對象之前,這將是一個很好的解決方案。我寧願不惹禍。

是否有一種方法可以輕鬆修改XML以將名稱空間和前綴添加到所有項目元素及其子項?我正在努力做到手動完成並完成它。我想我會在這裏尋求幫助。

謝謝。

回答

1

不確定你的XML是什麼形式。你提出的mod過於複雜,你只需要調整 來添加xmlns =「blah」。可能很容易就做一個快速的字符串破解或正確的修復就是運行一個xsl轉換或一個parse-fix-serialise步驟來添加xmlns位。 HTH

相關問題