2013-11-26 52 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中始终是合法的。