Java原始类型XML文本值

时间:2013-11-26 09:16:11

标签: java xml primitive-types

我需要创建一个XML片段,我正在使用Java DOM。

我能找到的任何文档都说明可以使用 Element.setTextContent(),如下所示:

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

我的问题是:是否足以依赖 String.valueOf()在XML中正确表示相应的值?

提前致谢,

4 个答案:

答案 0 :(得分:3)

您可以使用javax.xml.bind.DatatypeConverter将XML文本转换为Java数据类型(从Java SE 6开始,转换为JDK / JRE的一部分)。这将确保正确处理有关文本表示的XML特定事项。

答案 1 :(得分:1)

尝试jsoup它也很好Java DOM

答案 2 :(得分:1)

  

是否足以依赖String.valueOf()在XML中正确表示相应的值?

DOM是XML文档的抽象数据模型。当您调用setTextContent()时,您正在设置元素的(严格来说,您要将元素的子元素设置为具有指定值的单个文本节点)。当您将DOM树作为XML文档编写时,序列化程序的工作是确保以正确的表示输出所有值。

只要您设置的值不包含XML中禁止的任何字符(除了制表符,换行符和回车符或未配对的代理人之外,控制U + 0020以下的字符)那么您会没事的,序列化程序将为您执行任何必要的转义。

对于String.valueOf本身,其原始类型转换为字符串的规则在JavaDoc文档中有详细说明。如果您要转换覆盖char的{​​{1}},char[]Object,则上述关于避免非法字符的警告,toString生成的值将会在XML中始终是合法的。

答案 3 :(得分:0)