Java原始类型和XML文本值

3

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

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

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

我的问题是:在XML中,仅依靠 String.valueOf() 来正确表示相应的值是否足够?
谢谢。

它可以工作,你的问题是什么? - subash
我不确定这种方法是否安全并且能够保证100%的正确性,例如如果该值是实际存在的,可能需要考虑一些本地化问题,因此我的问题在于我找不到官方文档描述将原始值转换为Xml值的过程。 - Stoimen
4个回答

3

1
尝试使用jsoup,它也很好。Java DOM

1
仅使用String.valueOf()在XML中表示相应的值是否足够? DOM是XML文档的抽象数据模型。当您调用setTextContent()时,您正在设置元素的值(严格来说,您正在将元素的子项设置为具有指定值的单个文本节点)。当您将DOM树写出为XML文档时,序列化程序的工作是确保所有值以正确的表示形式输出。 只要您设置的值不包含XML中禁止使用的任何字符(U+0020以下的控制字符除tab、newline和return之外的字符或未配对代理),那么您就没问题了,序列化程序会自动转义任何必要的字符。 至于String.valueOf本身,它将原始类型转换为字符串的规则在JavaDoc文档中详细说明。除非您转换的是char、char[]或覆盖toString的Object,并避免非法字符的上述警告,否则String.valueOf产生的值在XML中始终合法。

0

有什么特别需要注意的吗?请注意我正在使用String.valueOf()。 - Stoimen
1
啊,我的错。在这种情况下:如果 someValue 为空,你会得到 "null",这不是一个 XML 整数值。如果你想要一种类型安全的将 Java 类型转换为 XML "原始" 类型的方法,你应该使用某种映射。 - Rinke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接