2013-11-26 80 views
3

我需要創建一個XML片段,並且正在使用Java DOM。Java原始類型XML文本值

任何文件,我可以找到解釋說,人們可以使用Element.setTextContent(),像這樣:

Integer someValue = 5; 
Element element = myMethodCreatingTheElement(); 
element.setTextContent(String.valueOf(someValue)); 

我的問題是:是否足以將String.valueOf()依靠到在XML中正確表示相應的值?

由於提前,

+0

它的工作原理,你有什麼問題? – subash

+0

我不確定這種方法是否安全並保證100%的正確性,例如,如果該值是真實的,並且可能需要進行一些本地化考慮,那麼我的問題是我找不到描述將原始值轉換爲Xml值的官方文檔。 – Stoimen

回答

0
+0

什麼是特定於在那裏尋找的東西?請注意,我正在使用String.valueOf() – Stoimen

+1

啊,我的不好。在這種情況下:不。如果'someValue'爲null,您將得到「null」,這不是一個xml整數值。如果你想要一種將java類型轉換爲xml「primitive」類型的類型安全方式,你應該使用某種映射。 – Rinke

1

是否足夠依靠將String.valueOf()正確表示在XML中的相應值?

DOM是XML文檔的抽象數據模型。當您撥打setTextContent()時,您將設置元素的(嚴格地說,您將元素的子元素設置爲具有指定值的單個文本節點)。當您將DOM樹作爲XML文檔寫出時,串行器的工作就是確保所有值以正確的表示輸出。

只要您設置的值不包含XML中禁止的任何字符(除了製表符,換行符和回車符以外的U + 0020以下的控制字符,或者不成對的替代項),那麼您將沒事,序列化程序將爲您執行任何必要的轉義。

至於String.valueOf本身,其原始類型轉換爲字符串的規則在JavaDoc文檔中詳細列出。如果您要轉換charchar[]或覆蓋toStringObject,上述有關避免非法字符的警告,String.valueOf生成的值在XML中始終是合法的。